Register_globals=Off et instruction foreach()

Résolu
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 25 mars 2006 à 10:09
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 - 26 mars 2006 à 10:45
Bonjour,
Je viens de demander à mon hébergeur de passer register_globals à Off, après bien sûr avoir testé mon site en local.
Tout fonctionne sauf... une instruction foreach()
Voila le code
<form name= form action="" method=post>
<select name=classe[]>
<option name=classe1>classe1</option>
....
<select name=annee[]>
<option name=annee1>annee1</option>
....

Je récupère les variables après le post

if( isset
($_POST
[ "test_form"
])){



foreach
($annee
as $clef
=> $valeur
)
{
$sql
= 'UPDATE `lh_classe` SET `'
. $valeur
.'` = "'
.$classe
[$clef
].'" WHERE `id` = '
. $_SESSION
[ 'id'
].''
;
$req
= mysql_query
($sql
)
or die
( mysql_error
()
)
;

}

}

Ma BDD contient un champ pour chaque année.
Chaque classe doit s'insérer dans les champs "annee" correspondant.

Ensuite, j'ai 1 erreur :
Warning: invalid argument supplied for foreach (mauvais arguments fournis)
Mais voilà, je ne sais pas comment récupérer correctement les valeurs.

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 mars 2006 à 11:21
Hello,

$_POST['annee'] et pas $annee...
3
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
25 mars 2006 à 11:52
Bonjour,j'ai rajouté $annee $_POST['annee'] et aussi $classe $_POST['classe'];
Les valeurs passent correctement.
Super ! Merci
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
26 mars 2006 à 10:45
Salut,

Si vous avez plusieurs variables à passer avec post et get vous pouvez utiliser le code suivant au début de la page ensuite utilisez les variables normalement.

foreach( $_REQUEST as $a => $b)
{
$$a = $b;
}

A voir aussi :

http://www.phpcs.com/codes/FONCTION-SECURITE-CONTRE-POLLUTION-VARIABLES-HIJACKING_34938.aspx

http://perso.wareteam.com
http://freelance.wareteam.com
0
Rejoignez-nous