OVH Cloud OVH Cloud

HTTP_POST_VARS

7 réponses
Avatar
jp.witz
Avnt la version 4, les données transmises par la méthode POST ou GET dans un
formulaire étaient récupérables direstement dans une variable php.
Maintenant, il faut passer par $HTTP_POST_VARS["variable"] en faisant
$variable=$HTTP_POST_VARS["variable"];
Existe-t-il une méthode (ou script qui permette de récupérer toutes les
variables d'un coup? J'ai bien essayé
while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.

Merci
Jean-Paul

7 réponses

Avatar
CrazyCat
jp.witz wrote:

Avnt la version 4, les données transmises par la méthode POST ou GET dans un
formulaire étaient récupérables direstement dans une variable php.
Maintenant, il faut passer par $HTTP_POST_VARS["variable"] en faisant
$variable=$HTTP_POST_VARS["variable"];
Existe-t-il une méthode (ou script qui permette de récupérer toutes les
variables d'un coup? J'ai bien essayé
while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.

Merci
Jean-Paul


foreach ($_POST as $key => $value) {
$$key = $value;
}

--
Tout sur les eggdrops
http://www.c-p-f.org
ML @

Avatar
Thibaut Allender

Maintenant, il faut passer par $HTTP_POST_VARS["variable"] en faisant
$variable=$HTTP_POST_VARS["variable"];
Existe-t-il une méthode (ou script qui permette de récupérer toutes les
variables d'un coup? J'ai bien essayé
while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.


regarde du coté de http://fr.php.net/import-request-variables au lieu de
reinventer la roue :)

--
freelance + web|system developer|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
Guillaume Brocker
jp.witz wrote:

while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.


$HTTP_POST_VARS est une ancienne variable conservée pour compatibilité.
Il faut maintenant utiliser $_POST.

De plus, $HTTP_POST_VARS n'est pas une variable dite "superglobal".
Ainsi, si elle est utilisée dans le corps d'une fonction, il faut
impérativement déclarer "global $HTTP_POST_VARS" pour récupérer
l'instance globale de la variable. Sans cela, une instance locale au
corps de la fonction sera créée et initialisée à null.

$_POST est une variable dite "superglobal". Il n'est donc pas besoin de
l'utilisée avec la directive "global".

Pour plus d'informations :
<http://www.php.net/manual/en/language.variables.predefined.php>
<http://www.php.net/manual/en/reserved.variables.php#reserved.variables.post>

Guillaume

Avatar
Frederic Jacquot

Avnt la version 4, les données transmises par la méthode POST ou GET dans
un formulaire étaient récupérables direstement dans une variable php.
Maintenant, il faut passer par $HTTP_POST_VARS["variable"] en faisant
$variable=$HTTP_POST_VARS["variable"];


C'est toujours le cas, sauf que par defaut la variable "register_globals"
est maintenant à "Off" par défaut. En la mettant à "On", tu retrouves le
comportement que tu souhaites mais tu ouvres aussi la porte à des problèmes
de sécurité si ton application est sensible, et que tu n'est pas rigoureux
dans ta programmation.

--
Frédéric

Avatar
tyoup
CrazyCat wrote:
jp.witz wrote:

Avnt la version 4, les données transmises par la méthode POST ou GET
dans un
formulaire étaient récupérables direstement dans une variable php.
Maintenant, il faut passer par $HTTP_POST_VARS["variable"] en faisant
$variable=$HTTP_POST_VARS["variable"];
Existe-t-il une méthode (ou script qui permette de récupérer toutes les
variables d'un coup? J'ai bien essayé
while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.

Merci
Jean-Paul



foreach ($_POST as $key => $value) {
$$key = $value;
}

extract fait ça ...


http://fr.php.net/manual/en/function.extract.php

--
tyoup


Avatar
xpatval
"Guillaume Brocker" a répondu, avec
conviction, dans le message de
news:4027aec4$0$28637$
jp.witz wrote:

while(list($key,$value)= each($HTTP_POST_VARS)){$$key=$value;}
mais cela ne marche pas toujours.


$HTTP_POST_VARS est une ancienne variable conservée pour compatibilité.
Il faut maintenant utiliser $_POST.

De plus, $HTTP_POST_VARS n'est pas une variable dite "superglobal".
Ainsi, si elle est utilisée dans le corps d'une fonction, il faut
impérativement déclarer "global $HTTP_POST_VARS" pour récupérer
l'instance globale de la variable. Sans cela, une instance locale au
corps de la fonction sera créée et initialisée à null.

$_POST est une variable dite "superglobal". Il n'est donc pas besoin de
l'utilisée avec la directive "global".


Donc, dans le cas d'une fonction telle que celle qui suit, je sui sdans
l'obligation d'initialiser mes variables de la sorte :
function afficher_colonne ($sql, $name, $champ, $bouton)

{

$name = ( isset ( $_POST['name'] ) ) ; <== ICI

$champ = ( isset ( $_POST['champ'] ) ) ; <== et ICI

$result1 = mysql_query($sql);

print "<td><center><form methop='post' action='affich_tab.php'><br>";

print "<select name='$name' size='15'>";

while ($i = mysql_fetch_array($result1)) {

$i[$champ] = stripslashes($i[$champ]);

print"<option value='$i[$champ]'>$i[$champ]</font></option>";

}

print "</select><br><br>";

print "<center><input type='submit' value='$bouton'></center>";

print "</form></center></td>";

}

J'ai bon ?



xpatval


Avatar
Etienne SOBOLE
"jp.witz" a écrit dans le message de news:
c07qcg$1sh$

Existe-t-il une méthode (ou script qui permette de récupérer toutes les
variables d'un coup?


foreach ($_POST as $key => $value)

devrait normalement fonctionner.

Etienne