goldrazor Posté 25 Mai 2006 Posté 25 Mai 2006 (modifié) Bonjour, je rencontre un problème avec un script. Malgré la bdd et les identifiants corrects, je n'arrive pas à le faire fonctionner. Le script me retourne l'erreur $message.=$iden_echouee; qui signifie "identification échouée" Peut etre il y a t'il une erreur de programmation ? Je pense que ça bug là : if (isset($_POST['identification'])) { if (empty($_POST['passe']) || empty($_POST['pseudo'])) { $message.=$champs_non_remplis_login; } $verification="select pseudo,passe from pds_bannieres_membres where pseudo=\"$_POST[pseudo]\" and passe=\"$_POST[passe]\" and valide=1 "; $sql=mysql_query($verification); $num_rows=mysql_num_rows($sql); if ($num_rows==0) { $message.=$iden_echouee; } if ($message=='') { if ($_POST['retenir']==on) { $expire = 365*24*3600; // on défini la durée du cookie, 1 an setcookie("pseudo_pds_ban","$_POST[pseudo]",time()+$expire); setcookie("passe_pds_ban","$_POST[passe]",time()+$expire); print "<script language=javascript>window.location=\"membres/membres.php\"</script>"; } else { setcookie("pseudo_pds_ban","$_POST[pseudo]"); setcookie("passe_pds_ban","$_POST[passe]"); print "<script language=javascript>window.location=\"membres/membres.php\"</script>"; } } } <modérateur : merci de rédiger tes messages dans un français correct> Modifié 27 Mai 2006 par goldrazor
Loupilo Posté 25 Mai 2006 Posté 25 Mai 2006 Remplace la ligne $sql=mysql_query($verification); par $sql=mysql_query($verification)or die('Erreur dans la connexion MySQL :<br />'.mysql_error().''); Si "Erreur dans la connexion MySQL" s'affiche, donne nous le message d'erreur qui est à la ligne suivante.
goldrazor Posté 25 Mai 2006 Auteur Posté 25 Mai 2006 Merci, mais aucun message d'erreur apparait, sauf celui de la message box quidit "l'identification a échouée" :sad:
Loupilo Posté 25 Mai 2006 Posté 25 Mai 2006 Alors remplace ce que je t'ai donné par ça : $sql=mysql_query($verification)or die($message.='Erreur dans la connexion MySQL :<br />'.mysql_error().'';);
goldrazor Posté 25 Mai 2006 Auteur Posté 25 Mai 2006 Toujours pareil, aucun message d'erreur sauf le msgbox qui dit "Votre identification a échoué" :sad:
Loupilo Posté 25 Mai 2006 Posté 25 Mai 2006 Donc la requête fonctionne correctement, ça veut dire qu'aucun enregistrement n'est retourné, et donc tout bêtement que... tes identifiants sont incorrects. Visiblement, ils ne sont pas cryptés, tu peux donc facilement vérifier dans ta base de données si tu entres les bons...
webadev Posté 25 Mai 2006 Posté 25 Mai 2006 tu te fais une petit echo $verification; Ca t'affichera ta requete. Tu fais un copier-coller dans phpmyadmin et tu veras ce que ta requete te donne. Hervé
goldrazor Posté 25 Mai 2006 Auteur Posté 25 Mai 2006 Je verifie et pourtant ce sont les bons identifiants. Peut etre que c'est mon ordi qui déconne. Voici le compte du site http://www.PromoClic.com/ (désolé pour la pub) pseudo : flashkiss passe : test Merci de me dire si chez toi, ca fait pareil.
Loupilo Posté 25 Mai 2006 Posté 25 Mai 2006 Effectivement j'ai la même erreur, mais ce sont bien les identifiants qui ont un problème... Fais ce qu'Hervé suggère, et regarde si un enregistrement est effectivement renvoyé.
goldrazor Posté 25 Mai 2006 Auteur Posté 25 Mai 2006 comme ceci ? $verification="select pseudo,passe from pds_bannieres_membres where pseudo=\"$_POST[pseudo]\" and passe=\"$_POST[passe]\" and valide=1 ";echo $verification; Car je veux pas etre chiant, mais ca affiche rien du tout :-/
webadev Posté 25 Mai 2006 Posté 25 Mai 2006 Quand tu as un problème de ce type la meilleur solution est de voir ce que tu envois comme requete et voir ce qu'elle te rend. De plus tu veras directement si tes login/ pass sont juste dans ta requete. Peut être une petite idee, remplace ta requete par : $verification="select pseudo,passe from pds_bannieres_membres where pseudo='$_POST[pseudo]' and passe='$_POST[passe]' and valide='1'"; Hervé
goldrazor Posté 25 Mai 2006 Auteur Posté 25 Mai 2006 C'est gentil webadev de me venir en aide. Malheureusement, malgrés ce changement de requete, il y a toujours ce msgbox qui m'indique que mon identification a échoué.
Dudu Posté 25 Mai 2006 Posté 25 Mai 2006 Salut Ce n'est certainement pas moi qui t'aiderait en PHP, mais au-délà de l'alerte Javascript tu as surtout un message d'erreur PHP selon lequel tu aurais un problème d'en-têtes dans ton code ("headers already sent") Généralement ce message provient d'un include foireux.. donc essaie peut-être déjà de voir de ce côté-là.. Warning: Cannot modify header information - headers already sent by (output started at /home.3/promocli/www/login.php:6) in /home.3/promocli/www/login.php on line 124Warning: Cannot modify header information - headers already sent by (output started at /home.3/promocli/www/login.php:6) in /home.3/promocli/www/login.php on line 12 Hope this helps !
webadev Posté 25 Mai 2006 Posté 25 Mai 2006 (modifié) En ce qui concerne l'erreur en php, tu dois avoir un caractere qui s'affiche avant la creation de ta session un truc du style. C'est gentil webadev de me venir en aide. Malheureusement, malgrés ce changement de requete, il y a toujours ce msgbox qui m'indique que mon identification a échoué. Tu as fais ce que je t'ai dis avec l'affichage de ta requete ? PhpMyAdmin t'a donné quoi ? EDIT 1 : On a pas tout le script à quel moment tu fais intervenir ta voite Alert ? Car à mon avis c'est à ce niveau que cela ce situe. EDIT 2 : Remplace print "<script language=javascript>window.location=\"membres/membres.php\"</script>"; Par header("Location: http://http://www.promoclic.com/membres/membres.php");exit(); Petit conseil : Ajoute un index.html dans ton repertoire /membres/ EDIT 3 : Autre conseil : utilise les sessions si le gars ne veut pas retenir son login/pass Donne nous le code de ta page membres.php Je suis sur a 99% que le problème vient de la, vu qu'on est redirigé dessus donc ca vérifie ta condition : $message=='' Hervé Modifié 26 Mai 2006 par webadev
Loupilo Posté 26 Mai 2006 Posté 26 Mai 2006 Après avoir testé avec goldrazor, la requête SQL est correcte et retourne bien l'utilisateur demandé, le problème est autre part... Cf le message d'Hervé et celui de Dudu.
goldrazor Posté 26 Mai 2006 Auteur Posté 26 Mai 2006 Webadev, quand je fais la modification au niveau du code, je me retrouve avec le problème cité par dudu. Pour la construction du site, j'ai volontairement pas mis d'index dans le repertoire membres ainsi que dans d'autre repertoire. mais ca ne saurai tarder ;-) Voici le code de la page membres.php <?//On inclut les fichiers necessairesinclude ("../config.php");include ("../protection.php");include ("../langues.php");include ("../fonctions.php");include ("../haut.php");//On vérifie si la page est appelée avec la fonction suspendre if (isset ($_GET['suspendre'])) { $update="update pds_bannieres_membres set suspendre=$_GET[suspendre] where pseudo=\"$_COOKIE[pseudo_pds_ban]\" and passe=\"$_COOKIE[passe_pds_ban]\""; $sql=mysql_query($update); }//on inclut la fonction d'affichageaffichage();//On inclut le début du tableau membresdebut_tableau_membres();//On affiche la pageprint "<center><b>Bienvenue dans votre espace membre <font color=red>$_COOKIE[pseudo_pds_ban]</font><br><br></center><hr width=50><br><br>";$selection="select * from pds_bannieres_membres where pseudo=\"$_COOKIE[pseudo_pds_ban]\" and passe=\"$_COOKIE[passe_pds_ban]\"";$sql=mysql_query($selection); while ($a_row=mysql_fetch_assoc($sql)) { print "Il vous reste actuellement <font color=red>$a_row[credits]</font> crédits. Vous avez affiché <font color=red>$a_row[affichages_envoyes]</font> bannières pour <font color=red>$a_row[affichages_recus]</font> bannières affichées.<br><br>"; print "<hr width=50>Vous avez généré <font color=red>$a_row[clics_envoyes]</font> clics et en avez reçu <font color=red>$a_row[clics_recus]</font><br><br>"; //On vérifie si le compte est supendu ou non if ($a_row['suspendre']==1) { print $fin_membres_desactive;; } else { print $fin_membres_active; } }//On inclut la fin du tableau des membresfin_tableau_membres();//On inclut le ficher bas.phpinclude ("../bas.php");?> Il y a t'il une erreur sur cette page ? Merci
goldrazor Posté 27 Mai 2006 Auteur Posté 27 Mai 2006 Apparemment je crois avoir trouvé la solution. J'ai inclu le template dans les fichiers haut.php et bas.php, chose que je n'avais pas fait. J'avais carrement inclu le script au milieu du template. Je remercie toutes les personnes ayant participé de prés ou de loin à cette discussion et j'espere que celle ci profitera pour d'autres débutants comme moi lol A bientot j'espere, mais bon je suis pas pressé ;-)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant