HELP: espace membre...

Mammouth du PHP | 702 Messages

09 mai 2008, 20:13

Bonjour:

Voila en fait, suite au login et au pass définis, je créé un espace pour le membre, ou il peut consulter et modifier certaines informations, donc voici le code:
Code:

Code : Tout sélectionner

<? //insertion de fichier de configuration require("infos/config.inc.php"); // connection et selection de la base ce donnée $connect=mysql_connect($host,$login,$pass) or die ("Connection impossible"); mysql_select_db($base,$connect) or die ("selection impossible"); ?> <?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['loginclient']) && !empty($_POST['loginclient'])) && (isset($_POST['pass_md5']) && !empty($_POST['pass_md5']))) { // on teste si une entrée de la base contient ce couple login / pass $sql = 'SELECT count(*) FROM clients WHERE loginclient="'.mysql_escape_string($_POST['loginclient']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass_md5'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result($req); mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['loginclient'] = $_POST['loginclient']; header('Location: membre.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } // sinon, alors la, il y a un gros problème :) else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>CONNEXION A VOTRE ESPACE CLIENTS</title> <meta name="generator" content="Namo WebEditor v5.0"> </head> <body> Connexion à votre espace client :<br /> <form action="index.php" method="post"> Login : <input type="text" name="loginclient" value="<?php if (isset($_POST['loginclient'])) echo htmlentities(trim($_POST['loginclient'])); ?>"><br /> Mot de passe : <input type="password" name="pass_md5" value="<?php if (isset($_POST['pass_md5'])) echo htmlentities(trim($_POST['pass_md5'])); ?>"><br /> <input type="submit" name="connexion" value="Connexion"> </form> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
Le premier client porte le login:
fbi
et le pass:
123456
(Il s'agit d'un test), cependant quand je fait une connexion sur le compte client, il m'affiche l'erreur du compte non reconnu.
Image

Voici aussi le code de la page membre.php
Code:

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION['loginclient'])) { header ('Location: index.php'); exit(); } ?> <html> <head> <title>Espace Client</title> <meta name="generator" content="Namo WebEditor v5.0"> </head> <body> Bienvenue <?php echo htmlentities(trim($_SESSION['loginclient'])); ?>!<br /> <a href="deconnexion.php">Déconnexion</a> </body> </html>

D'avance merci de vos éclaircissements sur le problème[/code]

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 209 Messages

09 mai 2008, 20:17

Le mot de passe qui est dans ta base n'est pas en md5, donc si tu le compare avec un pass en md5, c'est normal que ça fonctionne pas...

Mammouth du PHP | 702 Messages

09 mai 2008, 20:24

comment puis-je faire pour le mettre en md5?
d'avance merci...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 209 Messages

09 mai 2008, 20:31

C'est au moment de l'inscription qu'il faut le faire.
Quand tu fait la requête d'insertion du nouveau membre dans la base, il faut faire ceci (par exemple) :
$pass = (IsSet($_POST['pass']))? $_POST['pass']:'';
mysql_query("INSERT INTO membres ... VALUES (..., ".md5($pass).",...)");

Mammouth du PHP | 702 Messages

09 mai 2008, 20:45

merci, mais ça fonctionne pas, ou ai-je fait l'erreur. D'avance merci...

Code : Tout sélectionner

<?php $req ="insert into clients (civilite,nom,prenom,adresse,ville,code_postal,telephone_fixe,telephone_mobile,e_mail,login,pass_md5) values('$civilite','$nom','$prenom','$adresse','$ville','$code_postal','$telephone_fixe','$telephone_mobile','$e_mail','$loginclient','.md5($pass_md5)')"; mysql_query($req); ?>
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 209 Messages

09 mai 2008, 20:54

$req ="insert into clients (civilite,nom,prenom,adresse,ville,code_postal,telephone_fixe,telephone_mobile,e_mail,login,pass_md5) values('$civilite','$nom','$prenom','$adresse','$ville','$code_postal','$telephone_fixe','$telephone_mobile','$e_mail','$loginclient','.md5($pass_md5)')";
mysql_query($req); 
Pourquoi tu met '.md5($pass_md5)' ? il y a un point à gauche et non à droite, tu as regardé ce que vaut le mot de passe dans ta base ?
je mettrai plutôt '".md5($pass_md5)."'...

Mammouth du PHP | 702 Messages

09 mai 2008, 21:00

La y'a plus aucune incrémentation dans la base, pourtant aucune erreur n'apparaît dans la requête...
<?php
$req ="insert into clients (civilite,nom,prenom,adresse,ville,code_postal,telephone_fixe,telephone_mobile,e_mail,login,pass_md5) values('$civilite','$nom','$prenom','$adresse','$ville','$code_postal','$telephone_fixe','$telephone_mobile','$e_mail','$loginclient', '".md5($pass_md5)."'";
mysql_query($req);
?>
Merci de votre aide.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 209 Messages

09 mai 2008, 21:02

Et avec ceci, qu'est-ce que ça dit :
<?php
$req ="INSERT INTO clients (civilite,nom,prenom,adresse,ville,code_postal,telephone_fixe,telephone_mobile,e_mail,login,pass_md5) VALUES('$civilite','$nom','$prenom','$adresse','$ville','$code_postal','$telephone_fixe','$telephone_mobile','$e_mail','$loginclient', '".md5($pass_md5)."')";
mysql_query($req) or die(mysql_error());
?>
Je précise que tu n'avais pas fermé la parenthèse ouvert après le VALUES...

Mammouth du PHP | 702 Messages

09 mai 2008, 21:09

nickel, tout fonctionne. Merci pour votre professionalisme et votre rapidité.
Bonne continuation à vous. En esperant que je n'aurais plus besoin de votre aide, même si je doute que cela ne soit pas le cas, je vous souhaite une excellente soirée et un très bon weekend.
Cordialement, M. Piotrowski Stanislas...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

x0s
Eléphanteau du PHP | 22 Messages

10 mai 2008, 01:18

Un petit Résolu dans le titre ;)

Mammouth du PHP | 702 Messages

10 mai 2008, 19:55

y'a pas l'option...