problème requête Sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème requête Sql

Re: problème requête Sql

par miiidooo19 » 27 juil. 2011, 19:47

intval() protège ta variable $_GET
intval() veut dire que ta variable $_GET ainsi protégée ne peut contenir que des valeurs numériques entières et pas de caractères
donc je ne vois pas l'utilité d'afficher un message, puisque si il insère des caractères ou même une requête pour te hacker, ils seront détuits par intval qui renverra 0
m'enfin c'est a toi de voir :wink:

ah merci c'est ce que j'ai fait ^^ au début je connais pas a quoi sert la function intval :) merci encore

Re: problème requête Sql

par leozoe » 25 juil. 2011, 01:14

intval() protège ta variable $_GET
intval() veut dire que ta variable $_GET ainsi protégée ne peut contenir que des valeurs numériques entières et pas de caractères
donc je ne vois pas l'utilité d'afficher un message, puisque si il insère des caractères ou même une requête pour te hacker, ils seront détuits par intval qui renverra 0
m'enfin c'est a toi de voir :wink:

Re: problème requête Sql

par miiidooo19 » 24 juil. 2011, 22:08

pourquoi veux tu mettre une valeur non numérique dans ton url, je ne comprends pas
et pour protéger ta variable $_GET , un intval() est plus approprié je pense.

si pas que je veux passer une valeur non numérique dans l'url mais juste pour éviter qd un utilisateur s'amuse a changer les valeur dans lurl :)

merci pour intval() je vais essayé de voir a quoi ça sert :)

Re: problème requête Sql

par leozoe » 24 juil. 2011, 21:52

pourquoi veux tu mettre une valeur non numérique dans ton url, je ne comprends pas
et pour protéger ta variable $_GET , un intval() est plus approprié je pense.

Re: problème requête Sql

par miiidooo19 » 24 juil. 2011, 21:12

Il te faut tester la variable avec is_int() ou is_numeric() avant de l'utiliser ... si c'est un nombre tu exécutes ton code, sinon, tu mets un message d'erreur à la place :)
ah donc je fait un truc comme ça

if (is_int(addslashes($_GET['topic_id'])) )
{
le script
}
else
{
message d'erreur
}

c'est comme ça ?

Edit : c'est bien ça :D

sauf que j'ai un problem qd je met a la place de la chaine des caractères dans lurl topic.php?topic_id=1* ça m'affiche ce message d'erreur

eurreu de syntaxe dans la ligne 1 :s

Re: problème requête Sql

par Ryle » 24 juil. 2011, 20:56

Il te faut tester la variable avec is_int() ou is_numeric() avant de l'utiliser ... si c'est un nombre tu exécutes ton code, sinon, tu mets un message d'erreur à la place :)

Re: problème requête Sql

par miiidooo19 » 24 juil. 2011, 20:33

Bonjour,

Le champ id_topic de ta table topic est de quel type ?

si il est de type int par exemple il n'accepte que les chiffres, si tu lui demandes des lettres, il ne peut rien te retourner

oui Leozoe le champ id_topic c'est de type int et il accepte que les chiffres et c'est bien ça le problème psk ce champ est AUTO_INCREMENT donc je pourrai pas le mettre en varchar par exemple

moi le but de tous ça si que quand un utilisateur essayé de taper une chaine de caractères a la place de num de topic dans l'url s'affiche un msg d'erreur que je vais écrire moi et pas le msg de php :s

Re: problème requête Sql

par leozoe » 24 juil. 2011, 19:33

Bonjour,

Le champ id_topic de ta table topic est de quel type ?

si il est de type int par exemple il n'accepte que les chiffres, si tu lui demandes des lettres, il ne peut rien te retourner

Re: problème requête Sql

par miiidooo19 » 24 juil. 2011, 19:17

"Champ 'lklmkm' inconnu dans where clause" verifie l'orthographe du nom du champs.

2ème question fais une condition en interdisant par exemple le mot script ou metat refresh ainsi que tous les nom de fonction permettant la redirection etc...

pour ta première réponse le nom du champs est correct sauf que quand je met par exemple 100090909090 des chiffres ça marche vu que dans champs id_topic y a que des chiffres mais quand il s'agit d'une chaines de caractères il m'affiche le msg d'erreur "Champ 'lklmkm' inconnu dans where clause" donc ça vien de pas de nom du champ

Re: problème requête Sql

par hakazizi » 24 juil. 2011, 18:53

"Champ 'lklmkm' inconnu dans where clause" verifie l'orthographe du nom du champs.

2ème question fais une condition en interdisant par exemple le mot script ou metat refresh ainsi que tous les nom de fonction permettant la redirection etc...

problème requête Sql

par miiidooo19 » 24 juil. 2011, 18:32

bonjour à vous tous,

j'ai un problème avec ma requête sql

topic_id c'est une variable passé dans Url quand je change l'id d'un topic par une chaine de caractère exemple 'lklmkm' il m'affiche comme résultats

Champ 'lklmkm' inconnu dans where clause



$rechercheId= mysql_query("SELECT * FROM topic WHERE id_topic='".addslashes($_GET['topic_id'])."'") or die (mysql_error());
$nbR = mysql_num_rows($rechercheId);
if ($nbR == 0)
{
echo ' Non ';
}
else echo 'Yes';

*******************************************

Deuxième question :

comment faire pour empêcher les Script de redirection dans un commentaire mais autoriser les balises Html

Merci d'avance