Pb requête PHP


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Pb requête PHP

Message le Ven Oct 26, 2007 13:59

Bonjour,

voici ma requête :

Code: Tout sélectionner
$select = 'select * FROM rma WHERE login='.$login.' ORDER BY rma ASC limit '.$limite.','.$nombre;


avec cette requette j'obtiens le message d'erreur suivant :

Code: Tout sélectionner
Erreur : Champ 'webac' inconnu dans where clause


c'est une histoire de " ou de ' c'est sur mais ou?

pouvez vous m'aider?

paranoise
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: 30 Juin 2005

Message le Ven Oct 26, 2007 14:04

essaye en remplacant petit a petit tes '.$XXXX.' par des vrai valeur 4 ou 5 ou 8 et tu vois celle ki bugue et celle qui bugue pas


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Ven Oct 26, 2007 14:05

ok merci mais je sais que ça viens de la variable login car si j'enleve le where ça fonctionne


e-kiwi
Modérateur
Modérateur
 
Messages: 15541
Inscription: 23 Déc 2003

Message le Ven Oct 26, 2007 14:07

déjà tu fais un echo $select pour savoir ce qui est executé !

paranoise
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: 30 Juin 2005

Message le Ven Oct 26, 2007 14:08

ca peut venir d'apres.... essaye en remplacant login par une vrai valeur et verifie si le type des champ corresponde bien, et que login e bien initialiser ( avec un echo par ex)


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Ven Oct 26, 2007 14:11

voici ce que j'obtiens avec echo $select; :

Code: Tout sélectionner
select * FROM rma WHERE login=webac ORDER BY rma ASC limit 0,5


apparament rien d'anormal!


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Ven Oct 26, 2007 14:13

select * FROM rma WHERE login='webac' ORDER BY rma ASC limit 0,5


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Ven Oct 26, 2007 14:15

merci a tous en fait voici ma requête :

Code: Tout sélectionner
$select = 'select * FROM rma WHERE login="'.$login.'" ORDER BY rma ASC limit '.$limite.','.$nombre;


je ne sais pas si c'est très pro mais ça fonctionne.


e-kiwi
Modérateur
Modérateur
 
Messages: 15541
Inscription: 23 Déc 2003

Message le Ven Oct 26, 2007 14:29

seebz a trouvé, t as pas mis de ' ou " devant ta valeur. il essayai de comparer 2 champs de la table si tu ne les met pas.

donc ta technique est pro, pas de soucis


ltressens
WRInaute impliqué
WRInaute impliqué
 
Messages: 551
Inscription: 2 Avr 2004

Message le Ven Oct 26, 2007 14:46

et pour corriger le titre : ce n'est en aucun cas un problème de requête PHP, mais bien un problème de requête Mysql.
PHP n'est pas un langage de requetes...


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Oct 26, 2007 16:47

Si ta variable login vient d'un formulaire, il faut ajouter un addslashes pour éviter de se faire pirater :
if (!get_magic_quotes_gpc())
$login = addslashes($login);
$select = "select * FROM rma WHERE login='$login' ORDER BY rma ASC limit $limite,$nombre";


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Ven Oct 26, 2007 16:54

webmasterlamogere a écrit:Si ta variable login vient d'un formulaire, il faut ajouter un addslashes pour éviter de se faire pirater

je dirais même : un mysql_real_escape_string() :wink:


Kaliiii
WRInaute impliqué
WRInaute impliqué
 
Messages: 602
Inscription: 2 Mar 2005

Message le Ven Oct 26, 2007 17:03

il y a un truc que je ne saisis pas dans ta requete SQL, quand tu fais un "ORDER BY rma " rma est bien un champs dans ta table ? je suis pas un pro, mais si tu essayes de faire un order sur une table .. ca risque de ne pas fonctionner je pense


Kaliiii
WRInaute impliqué
WRInaute impliqué
 
Messages: 602
Inscription: 2 Mar 2005

Message le Ven Oct 26, 2007 17:05

ah et pour les autres, au sujet du addslashes,

J'ai toujours cherché des articles sur la sécurité php. J'utilise beaucoup de traitements de formulaires du même type ou je récupère mes varibles de la facon suivante :

$login = $_POST['login'];

$sql= "SELECT * FROM `user` WHERE `login` = '$login'";

cette requette pose problème niveau sécurité ?


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Oct 26, 2007 17:11

regarde l'exemple 1595 ici :
http://fr.php.net/mysql_real_escape_string

Pb requête PHP

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité