Espace client php

Eléphanteau du PHP | 31 Messages

24 avr. 2009, 00:38

Bonjour,

J'aurais besion d'aide car la je ne trouve pas la solution.
Donc j'ai crée un espase client pour mon site qui fonctionne sauf que lorsque je rentre l'identifiant(adresse mail) et le mot de passe ce m'evoyer toujours sur la 1ere entré de la base sql. (meme si je change de compte client)
Voici mon code login.php

Code : Tout sélectionner

<?php require 'Connections/newtrip.php'; ?> <?php // *** Validate request to login to this site. if (!isset($_SESSION)) { session_start(); } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['mail'])) { $loginUsername=$_POST['mail']; $password=$_POST['mdp']; $MM_fldUserAuthorization = ""; $MM_redirectLoginSuccess = "compte.php"; $MM_redirectLoginFailed = "signin.php"; $MM_redirecttoReferrer = true; mysql_select_db($database_newtrip, $newtrip); $LoginRS__query=sprintf("SELECT mail, mdp FROM Shop_client WHERE mail='%s' AND mdp='%s'", get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); $LoginRS = mysql_query($LoginRS__query, $newtrip) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = ""; //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && true) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>triphoto</title> </head> <?php require 'header.inc.php' ?> <body> <form action="<?php echo $loginFormAction; ?>" method="post" name="login">Adresse email: <input name="mail" type="text" /><br /> Mot de passe: <input name="mdp" type="password" /><input name="envoyer" type="submit" value="Se connecter" /></form> <a href="signin.php">Créer un nouveau compte</a> </body> </html> <?php require 'footer.inc.php' ?>
franchement je pige pas help!!!!!

david

D4Y
Eléphant du PHP | 52 Messages

24 avr. 2009, 07:59

Ca serait pas plutot :
$LoginRS__query=sprintf("SELECT mail, mdp FROM Shop_client WHERE mail='$loginUsername' AND mdp='$password'") 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 avr. 2009, 11:12

J'ai jamais compris l'intérêt d'utiliser une sprintf() pour créer une requête, à part coller les valeurs à perpette les bains des emplacements où elles devraient figurer... c'est lourd, ça sert à rien et c'est pas lisible pour débuger ou maintenir... mais c'est pas le propos et c'est pas la façon dont tu construit la requête qui va changer grand chose au problème...

Commence déjà par afficher le contenu de $LoginRS__query, tu verras ce que contient ta requête et tu comprendras peut être ce qui pose problème... encore que vu que tu n'utilises pas les résultats retournés par la requête, je ne vois pas comment tu pourrais en déduire qu'elle ne te retourne que le premier enregistrement de ta base.

En l'occurence, elle te retourne celui qu'elle trouve et qui correspond aux infos spécifiées dans le where. Si après tu n'as pas les bonnes valeurs en session ou ailleurs, c'est parce que tu n'y a pas placé les bonnes données...

Tu pourrais aussi nous dire ce que devrait faire ton script et ce qu'il fait exactement (sans extrapoler ;)) ....
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 31 Messages

27 avr. 2009, 02:51

Merci pour votre aide, je sais pas pourquoi mais maintenant ca fonctionne