PHP+MySQL Insérer des données de type $_REQUEST['value']

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 : PHP+MySQL Insérer des données de type $_REQUEST['value']

Re: PHP+MySQL Insérer des données de type $_REQUEST['value']

par Sékiltoyai » 10 juil. 2007, 22:47

Mais comme j'ai 26 entrées dans ma base de données, ce n'est pas terrible. Est-ce que vous auriez un conseil ?
J'ai un conseil très simple, c'est que si tu utilises $_REQUEST['machin'] et qu'un petit malin n'envoie machin ni par cookie, ni par post, ni par get, alors tu auras une belle erreur dans ton script. C'est pour ca qu'on fait toujours ceci :
$machin = isset($_REQUEST['machin'])?$_REQUEST['machin']:'';
Avec éventuellement (c'est mieux à vrai dire), une vérification de la conformité de la donnée en même temps (son type, sa validité, ...)

Enfin, $_REQUEST c'est vague, c'est pour les flemmards qui ne font pas attention à d'où viennent leurs données, il faut préférer les tableaux $_GET, $_POST, et $_COOKIE, ce qui permet en plus d'avoir un minimum de contrôle sur son script.

PHP+MySQL Insérer des données de type $_REQUEST['value']

par cozy_cookie » 10 juil. 2007, 19:15

Bonjour,

J'ai une petite question. Pour insérer une nouvelle ligne dans une base MySQL en PHP j'utilise le code suivant :

Code : Tout sélectionner

$result=mysql_query("INSERT INTO table VALUES ('$valeur')");
Jusque là, pas de problème.

Si la variable à insérer vient directement d'un formulaire, il vaut mieux utiliser le code

Code : Tout sélectionner

$_REQUEST['value']
pour appeler une variable.

Seulement, si je cumule ces deux codes de la manière suivante ça ne marche pas.

Code : Tout sélectionner

$result=mysql_query("INSERT INTO table VALUES ($_REQUEST['value'])");
Je sais que je pourrais contourner le problème en insérant le code suivant

Code : Tout sélectionner

$value = $_REQUEST['value'];
Mais comme j'ai 26 entrées dans ma base de données, ce n'est pas terrible. Est-ce que vous auriez un conseil ?

D'avance merci pour votre aide.