$_POST=NULL, bonne solution ?

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 : $_POST=NULL, bonne solution ?

par orgerix » 06 févr. 2007, 14:08

OK merci beaucoup.

par zeus » 06 févr. 2007, 09:40

Les variables en POST n'existent que dans le script suivant le formulaire. Tu n'as pas de soucis à te faire pour ça.

Les variables POST sont créées lors de la validation du formulaire et elles n'ont qu'une durée de vie limitée au script d'après ;)

par orgerix » 05 févr. 2007, 20:10

Ok.

Dans ce cas le code que tu m'a donné me sert à rien puisque ca me rempli le choix avec une valeur nulle.

Tu n'as pas compris ce que je veux faire. Par exemple, $_POST['nom'] soit rempli au cours d'un script, puis quelque page plus loin, il y a un formulaire sans le champs 'nom' qui renvoie à un script général qui en fonction des index de $_POST donne un formulaire précis.
Je crains que $_POST['nom'] existe toujours. C'est pourquoi maintenant, je metterai à la fin de tout script utilisant le tableau $_POST, je metterai unset $_POST

par Aureusms » 05 févr. 2007, 19:49

Qu'est qui donne l'inverse de Isset ? empty() ?
Non ta variable peut être "isset"ée (existée) mais vide et là tu la teste avec empty();

par orgerix » 05 févr. 2007, 19:46

Heu, sauf si je m'abuse, ca donnera toujours faux, puisque d'après ma doc, ca donne l'inverse de isset...

Mais merci beaucoup, je vais me débrouiller avec unset.

par Aureusms » 05 févr. 2007, 19:33

Bon bah fait unset($_POST); et toutes les variables $_POST seront effacées.

Si pour ton exemple rajoute une ligne :
If (isset($_POST[variable]) && empty($_POST[variable]))
   {
   print("<input type="text" name="variable" value ='".$_POST[variable]."'>");
   } else
   {
   print("<input type="text" name="variable" value =''>");
   }
Toujours très pratique la fonction empty();

par mere-teresa » 05 févr. 2007, 19:32

Si tu veux vider le tableau, tu peux soit :
  • faire unset($_POST), c'est beaucoup plus propre que de mettre NULL dans la variable, même si tu as détecté que les var non-existantes renvoyaient NULL.
  • re-déclarer la variable $_POST = array() (moins propre)
Si tu veux tester ce tableau, tu peux faire :
  • isSet($_POST['mavar']), NB : $_POST est défini dès lors que tu soumets un formulaire
  • empty($_POST)
  • is_null($_POST['mavar'])
[/color]

par orgerix » 05 févr. 2007, 19:22

Je ne veux pas effacer une seul variable, mais tout le tableau, d'ou l'absence d'indice. mais je ne sais pas si $_POST a des indice particulier qu'il faut garder...

Je veux faire quelque chose de ce style :
If (isset($_POST[variable]))
{print("<input type="text" name="variable" value ='".$_POST[variable]."'>");}
D'ou ma volonté de m'assurer que mon tableau soit vide avant que je ne le remplisse via un formulaire( c'est ptet pas claire...)

par Aureusms » 05 févr. 2007, 19:17

Oui et non (je suis normand). En fait ça dépend de ce que tu veux faire (j'ai pas tout compris).

Sinon utilise unset(); au lieu de $POST["mavariable"] = NULL;
Je pense que c'est mieux.

$_POST=NULL, bonne solution ?

par orgerix » 05 févr. 2007, 19:09

Bonjour,

Je fais un script qui affiche un formulaire prérempli en fonctions des variables du tableau $_POST.

Cependant, au cours des pages, il arrive que certaines d'entre elles ne soient pas remplacer, et j'aimerai surtout pas que les anciennes soit dans le nouveau formulaire.

Mettre la ligne $_POST=NULL en fin de chaque script utilisant le varisable POST est :
-utile ?
-une bonne solution ?