Espace membre modifié

Répondre
Woody18
le 03/03/2010 à 21:35
Woody18
Bonjour, j' essaye d' apprendre le php et j' ai donc suivit les comments faire. J' ai voulu modifier le script espace membre pour donner l' accès à une seule personne donc sans inscriptions en rentrant manuellement les données dans ma base. J' ai donc une page pour poster les données :

<div id="account">
<div class="form">
<form method="post"action="traitement.php">
<label for="compte">Compte :</label>&nbsp;&nbsp;&nbsp;
<input type="text" name="login"/><br/><br/>
<label for="pass">Password :</label>
<input type="password" name="pass"/><br/><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="send" value="Envoyer"/>
</form>
</div>


Et une page qui traite les données. Seulement voilà j' ai un soucis une fois mes données rentré j' envoi le formulaire et la page traitement reste blanche. Ca fait deux jours que j' essaye de trouver une solution et pas moyen :

<?php
//Transformation donnée POST en variable
$login = htmlspecialchars($_POST['login']);
$pass = htmlspecialchars($_POST['pass']);

//Vérification postage login et pass
if (isset($_POST['login']) AND isset($_POST['pass']))
{
//Connexion à base de donnée sql
include('sql.php');

//Tester si le couple login pass existe
$sql = 'SELECT count(*) FROM admin WHERE login="'.mysql_escape_string('$login').'" AND pass="'.mysql_escape_string('$pass').'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();

//Vérification utilisateur membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = ('$login');
header('Location: membre.php');
exit();
}

elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
}

else {
echo 'Un des champs de connexion est vide.';

}

?>


Quelqu' un pourrait me guider sur la bonne voie ? Merci

Cordialement Woody18
QuoiQues
le 03/03/2010 à 22:40
QuoiQues
Bonjour,
Je pense que tu dois pointer sur ton bouton submit avant de lancer ta requête du style :
if (isset($_POST[send]) && $_POST['connexion'] == send) { ....
Bon courage
Merci et bravo !
Amery
le 04/03/2010 à 08:50
Amery
Il y a plusieurs erreurs de syntaxe avec l'utilisation des guillemets. On utilise les guillemets pour délimiter du texte, mais pas pour le nom d'une variable, comme $login.

Donc, à la ligne 14, tu dois écrire
<?php
$sql = 'SELECT count(*) FROM admin WHERE login="'.mysql_escape_string($login).'" AND pass="'.mysql_escape_string($pass).'"';
?>


et à la ligne 23 :

<?php
$_SESSION['login'] = $login;
?>
moogli
le 04/03/2010 à 15:17
moogli
salut,

les lignes 4 & 5 devraient être après la ligne 9.

Ta page reste blanche car tu est dans le cas du # elseif ($data[0] == 0) {
# $erreur = 'Compte non reconnu.';
# }

qui devrait être un else et non un elseif (que se passe t'il si $data[0]==28 ?)

@+
Il en faut peu pour être heureux !!!!!
Woody18
le 04/03/2010 à 21:28
Woody18
Merci pour toutes vos réponses je vais voir ça et essayer de comprendre.

Encore merci
Woody18
le 04/03/2010 à 21:37
Woody18
J' ai modifier par ce que vous m' avais dit : tout en essayant de comprendre le pourquoi donc j' ai enlever le elseif que j' ai remplacé par else { }
J' ai enlever les guillemets des variables que je n' aurai pas du mettre, et j' ai placé mes sécurités avec variable (htmlspecialchars) au bon endroit.

Rien à faire cette page reste blanche.

Je ne vois vraiment pas d' ou viens le problème :s
LA GLOBULE
le 05/03/2010 à 00:19
LA GLOBULE
Est ce que ton PHP affiche les erreurs habituellement ?

Si oui, alors c'est que t'as un exit quelque part ou bien que ton script se termine sans rien afficher (trace les endroits ou il rentre avec des echo), si non, ben modifie ton php.ini pour mettre à on la propriété display_errors et à E_ALL la propriété error_reporting.
Woody18
le 07/03/2010 à 21:38
Woody18
Oui d' habitude il affiche les erreurs.. Je pense pas que ça vienne de wamp. J' ai sans doute dut faire une erreurs ... Forcement...
moogli
le 08/03/2010 à 12:29
moogli
quel est le dernier code ? (fait un wall).
a quoi ressemble le contenu html de la page (affiche le source dans le navigateur, y a t il un message d'erreur cacher dans le code ?)

a tu vérifier le paramétrage de error_reporting comme te l'indique la globule ?

@+
Il en faut peu pour être heureux !!!!!
Woody18
le 08/03/2010 à 21:26
Woody18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>

<title>SV der Z&uuml;chter Russischer T&uuml;mmlerrassen - Home</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="designphp.css" />
</head>
<body>

<?php


//Vérification postage login et pass
if (isset($login) AND isset($pass) AND isset($_POST['send']))
{


//Transformation donnée POST en variable
$login = htmlspecialchars($_POST['login']);
$pass = htmlspecialchars($_POST['pass']);

//Connexion à base de donnée sql
include('sql.php');

//Tester si le couple login pass existe
$requete = mysql_query("SELECT login, pass FROM admin WHERE login='".mysql_escape_string('$login')."'");
if(mysql_num_rows($requete) < 1) { // Si le nombre d'entrée est inférieur à 1
echo 'Compte non reconnu.';
}
else { // Sinon, cela signifie que le compte est reconnu, nous pouvons continuer
$admin = mysql_fetch_array($requete);
if ($admin['pass'] == $pass) { // Si le mot de passe de la bdd = à celui entré
session_start();
$_SESSION['login'] = $login;
header('Location: membre.php');


}


else {
echo 'Compte non reconnu.';
}
}
}

else {
echo 'Un des champs de connexion est vide.';

}

?>

</body>
</html>


Voilà le code avec les dernières modification faites... Je crois que j' ai bientôt tout essayer. Aucune erreur caché quand je regarde le code source de la page traitement.

Maintenant il m' affiche quand même le dernier else
Un des champs de connexion est vide
mais toujours pas ce qu'il doit faire...

Sinon j' ai bien modifier le php.ini comme la dit la globule oui ... d' ailleurs c' était les valeurs par défaut...

Voilà encore merci de votre aide
Répondre
LoadingChargement en cours