Le zéro pas reconnu

marquito56 Messages postés 18 Statut Membre -  
sebshiva Messages postés 198 Statut Membre -
Bonjour, je vous cache pas que je ne suis pas un expert en php je suis coincé sur un truc.
Alors je vous demande votre aide voila mon code
# if (!empty($_GET['Prixmini']) && !empty($_GET['Prixmaxi'])) {
# $search .= " AND (a.ad_price BETWEEN '" . $_GET['Prixmini']. "' AND '" . $_GET['Prixmaxi'] . "')";
# }

Si je rentre dans Mini le chiffre 0 et dans Maxi 1000 il me liste tout même les supérieurs à 1000

Le problème est sur le zéro sinon ça fonctionne parfaitement !

10 réponses

sebshiva Messages postés 198 Statut Membre 10
 
Salut,

les champs en question, ce sont des int?
0
marquito56 Messages postés 18 Statut Membre 1
 
non il sont en TEXT mais j'ai essayé en INT
0
sebshiva Messages postés 198 Statut Membre 10
 
et c'est pareil?
0
marquito56 Messages postés 18 Statut Membre 1
 
oui pareil
0
sebshiva Messages postés 198 Statut Membre 10
 
Je sais pas...
essai peut-être un settype($_GET['Prixmini'], "integer");
et settype($_GET['Prixmaxi'], "integer")...
si ce sont des caractères dans tes variables $_GET...
et vire les '' autour de leurs valeurs dans ta requête... bien que je ne sois pas sur de ce dernier conseil...
0
marquito56 Messages postés 18 Statut Membre 1
 
C'est un soucis avec !empty
0
sebshiva Messages postés 198 Statut Membre 10
 
T'as raison, bien vu, isset est plus approprié...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
marquito56 Messages postés 18 Statut Membre 1
 
Non avec isset ça fonctionne pas il doit manquer un truc avec empty
0
sebshiva Messages postés 198 Statut Membre 10
 
du tout...
je site :
" Retourne FALSE si var a une valeur non-vide et différente de zéro.

Ce qui suit est considéré comme étant vide :

* "" (une chaîne vide)
* 0 (0 en tant qu'entier)
* "0" (0 en tant que chaîne de caractères)
* NULL
* FALSE
* array() (un tableau vide)
* var $var; (une variable déclarée, mais sans valeur dans une classe)"
...
si tu pense que ton problème viens de là, c'est une bonne piste il me semble..
0
sebshiva Messages postés 198 Statut Membre 10 > sebshiva Messages postés 198 Statut Membre
 
et vérifie bien ce que te renvois $_GET['Prixmaxi'] en terme de type de variable (même si PHP n'est pas un langage typé à proprement parlé...)
0
paf
 
Salut,

De toute facon, ton problème est bien plus que secondaire vu que tu as 2 grosses failles de sécurité en 1 requete !
0
sebshiva Messages postés 198 Statut Membre 10
 
Salut paf,
moi aussi je serais curieux de savoir où tu vois des failles de sécurité dans ces trois lignes...
0
marquito56 Messages postés 18 Statut Membre 1
 
2 grosses failles de sécurité ?
Tu peux m'en dire plus c'est quoi les failles.
Ça me rajoute un deuxième problème ça...
0
marquito56 Messages postés 18 Statut Membre 1
 
ça me fais flipper maintenant !
0
marquito56 Messages postés 18 Statut Membre 1
 
Comme ce fait il que je n'ai pas de réponses sur ce sujet ? Je fais fausse route c'est un code bidon ?
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

et en utilisant filter() ?
tu peux valider un entier, en théorie tu peux même lui indiquer un min et un max mais je n'ai jamais réussi à le faire fonctionner.

et pour les trous de sécurité, si vous ne les voyez pas en construisant une requête SQL directement avec des données utilisateurs, faut peut être arrêter de coder et vous mettre à la lecture
0
sebshiva Messages postés 198 Statut Membre 10
 
Je supposait que les valeurs étaient vérifiées avant la requête...
0