ran-tan-plan Posté(e) le 17 juillet 2003 Partager Posté(e) le 17 juillet 2003 voila, ca fait 1 semaine que je suis bloqué sur ce code(oui enfin...je l'ai pas touché depuis 4 jours...) $i = ( isset($_GET['i']) ) ? intval($_GET['i']) : 0; $p = ( isset($_GET['p']) ) ? $_GET['p'] : 0; echo "$p<br>"; if ($i != 0 && $p != 0) { connect_to_db(); $query = 'SELECT * FROM membres WHERE id=' .$i . ' AND pwd=' .$p; $result = mysql_query($query) or die("Query failed"); } else {echo"le premier if passe pas<BR>";} if ($result==false || @mysql_numrows($result)!=1){ //include("login.php"); echo "tu devrais te logguer <br>"; }else{ //include("admin_index.php"); echo "bienvenue admin<br>"; } echo "requete :<br>$query<br>erreur : (".mysql_errno().")".mysql_error(); Ce script sort les variables i et p de l'url et va verifier s'il existe un champ mysql qui les contient les 2. Si c'est le cas, il affiche "bienvenue admin". Et si ce champ n'existe pas, donc si le login est faux, il affiche "tu devrais te logguer". Le probleme est que cela ne marche que si $i et $p sont constitués de chiffres. Si je veux que $p soit un mot constitué de lettres, le script de parvient pas a sortir la variable. C'est cela que je cherche a faire avec la fonction parse_url(). vous arrivez a m'aider? j'espere que j'ai bien expliqué mon probleme... Lien vers le commentaire Partager sur d’autres sites More sharing options...
brice.wernet Posté(e) le 17 juillet 2003 Partager Posté(e) le 17 juillet 2003 if ($i != 0 && $p != 0) { connect_to_db(); Le probleme est que cela ne marche que si $i et $p sont constitués de chiffres. Si je veux que $p soit un mot constitué de lettres, le script de parvient pas a sortir la variable. C'est cela que je cherche a faire avec la fonction parse_url(). Je pense que le problème viens de la ligne if($i != 0 ... Mais je n'ai pas fait de PHP depuis très longtemps. Tu devrais vérifier que si $i vaut "A", tu atteins bien la ligne connect_to_db(), et tu sauras si c'est ta condition qui est mauvaise! Lien vers le commentaire Partager sur d’autres sites More sharing options...
ran-tan-plan Posté(e) le 17 juillet 2003 Auteur Partager Posté(e) le 17 juillet 2003 c'etait presque trop facile. maintenant j'ai mis ca if ($i != FALSE && $p != FALSE) { connect_to_db(); $query = 'SELECT * FROM membres WHERE id=' .$i . ' AND pwd=''.$p.'''; $result = mysql_query($query) or die("Query failed"); } FALSE marche avec chiffres et nombres alors que 0 seulement avec les chiffres. J'ai aussi rajouté les quotes dans la requete vu que c'est des lettres. merci brice.wernet de m'avoir mis sur la piste apres une semaine Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 17 juillet 2003 Partager Posté(e) le 17 juillet 2003 hum je rajouterais aussi des "addslashes" pour éviter que ton SQL soit pollué/hacké... Je testeraisaussi le champ Password AVANT le champ user pour la même raison. Je m'explique : si on interromp ta requête au niveau de la vérif de l'user, on peut rentrer sans le pass; or il est facile de trouver un nom de user... Si tu testes le password avant, cette astuce de hacking ne fonctionne plus... Au fait c'est quoi l'URL de ton site ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
ran-tan-plan Posté(e) le 17 juillet 2003 Auteur Partager Posté(e) le 17 juillet 2003 heu..pour le moment mon site est sur mon serveur local car il est en developpement. Tu verra un petit message dans ma signature quand je l'ouvrirai. D'ici 3-4 semaines je pense. Sinon, bonne idée pour le coup de la verification. Je vais le faire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.