Aller au contenu

[php]j'ai un *** de probleme!


ran-tan-plan

Messages recommandés

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

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

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 :francais:

Lien vers le commentaire
Partager sur d’autres sites

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 ? :francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...