Insérer directement des variables provenant de post dans une

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 : Insérer directement des variables provenant de post dans une

par Invité » 31 mars 2006, 14:37

Merci beaucoup. En effet, je n'avais pas vue ca comme ca.

Ludo

par ouckileou » 31 mars 2006, 14:26

Normalement c'est tout à fait possible
$sql = "INSERT INTO dip2france.personne VALUES (DEFAULT,'".$_POST['nom']."')"; 
Si ta variable contient une chaîne valide, peu importe de l'insérer directement ou de passer par une autre variable.
Mais bon, c'est une très mauvaise idée, car il suffit que tu ais une apostrophe dans le nom par exemple et ta requête plante.
(ce serait le même problème avec une variable intermédiaire ceci dit, si elle n'est pas traitée avec addSlashes() par ex)

Et encore on ne sait jamais, quelqu'un peut mettre intentionnellement du code dans "nom" histoire de te pourrir ta base

Donc on ne met pas directement des variables dans une requête
On les récupère, on les teste, on les traite, et on les insère

Insérer directement des variables provenant de post dans une

par barbarien36 » 31 mars 2006, 14:14

Bonjour tout lemonde,

Je viens vers vous pour avoir une information. Actuellement lorsque je veux faire une requête ajout aprés avoir remplis un formulaire, je suis obligé de passer tout mes variables dans d'autres variables avans de pouvoir mettre celle-ci dans ma requête insert. Bon comme cela n'est peut être pas très clair voici un exemple :

ce que je suis obligé de faire :

$test=$_POST['nom'];
$sql = "INSERT INTO dip2france.personne VALUES (DEFAULT,'$test')";
pg_query($sql);

Ce que je souhaiterai faire ces pouvoir mettre directement :
$sql = "INSERT INTO dip2france.personne VALUES (DEFAULT,'$_POST['nom']')";
pg_query($sql);

Sauf que si je fais cela il me met une erreur. Pourtant j'ai essayer en mettant des double cottes, des slaches (je suis pas sur de l'écriture), mais rien n'y fais.

Donc si vous avez une idée, je suis preneur.

Merci et bonne journé.

Ludo