Pb requête PHP

 

webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 350
Inscription: Ven Mar 04, 2005 18:30

Pb requête PHP

Message le Ven Oct 26, 2007 14: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?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

paranoise
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: Jeu Juin 30, 2005 15:37

Message le Ven Oct 26, 2007 15: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 impliqué
WRInaute impliqué
 
Messages: 350
Inscription: Ven Mar 04, 2005 18:30

Message le Ven Oct 26, 2007 15: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: 13568
Inscription: Mar Déc 23, 2003 10:04

Message le Ven Oct 26, 2007 15:07

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

paranoise
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: Jeu Juin 30, 2005 15:37

Message le Ven Oct 26, 2007 15: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 impliqué
WRInaute impliqué
 
Messages: 350
Inscription: Ven Mar 04, 2005 18:30

Message le Ven Oct 26, 2007 15: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: 447
Inscription: Dim Avr 15, 2007 18:14

Message le Ven Oct 26, 2007 15:13

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


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 350
Inscription: Ven Mar 04, 2005 18:30

Message le Ven Oct 26, 2007 15: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: 13568
Inscription: Mar Déc 23, 2003 10:04

Message le Ven Oct 26, 2007 15: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 passionné
WRInaute passionné
 
Messages: 550
Inscription: Ven Avr 02, 2004 15:52

Message le Ven Oct 26, 2007 15: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 accro
WRInaute accro
 
Messages: 1873
Inscription: Dim Déc 17, 2006 22:08

Message le Ven Oct 26, 2007 17: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.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 20:36

Message le Ven Oct 26, 2007 17: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 passionné
WRInaute passionné
 
Messages: 594
Inscription: Mer Mar 02, 2005 12:33

Message le Ven Oct 26, 2007 18: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 passionné
WRInaute passionné
 
Messages: 594
Inscription: Mer Mar 02, 2005 12:33

Message le Ven Oct 26, 2007 18: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 accro
WRInaute accro
 
Messages: 1873
Inscription: Dim Déc 17, 2006 22:08

Message le Ven Oct 26, 2007 18:11

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

 
Page suivante

Modérateurs: WebRankInfo, e-kiwi, OTP, fandecine, Patrice A.

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités