Aller au contenu

récupération de "checkbox"


Gregory

Sujets conseillés

Bonjour!

voila j'ai un soucis dans un de mes formulaires.

Mon forumaire marche parfaitement sous PHP 4.4.7 mais sous un autre serveur avec une version de PHP 4.4.4-8+etch4 le php bloque avec mes variables.

Je m'explique :

Une fois le formulaire validé, je redirige sur la meme page oû je vérifie les $_POST...

Apparement PHP n'aime pas lorsque il y a comme valeur du POST un tableau... (la condition else du if)

	$erreur="";
while(list($var,$val)=each($_POST)){

if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar] = $arval;
}

}
}

la variable $var remprésente le nom de mon champ dans le HTML

$val = la value

et dans la condition "while" il doit me créer, par exemple si mon champ checkbox s'appelle "hobby", une variable de type tableau $hobby avec le checkbox que j'ai entré.

$hobby[0]=1

$hobby[2]=1

pour les checkbox 1 et 3 que l'utilisateur aurait coché...

Si quelqu'un a une soluce pour que ca marche sur la version la moins rescente de php qu'il me dise :)

EDIT: si a la place de mette $$var[$arvar] = $arval; je met $hobby[$arvar] = $arval; ca marche mais c'est pas le but :(

Modifié par Gregory
Lien vers le commentaire
Partager sur d’autres sites

Hello,

la première chose à faire à mon avis est :

var_dump( $_POST );

Il s'agit là de la base du débugage ;) Ainsi tu verras quelle "tête" ont tes données sur l'un et l'autre des serveurs.

Lien vers le commentaire
Partager sur d’autres sites

Hello,

merci pour ton message.

Les données passent parfaitement dans le POST.

le problème étant que je récupère le nom du champ de mes checkbox par exemple :

$var = hobby

et comme valeur : array ( 0 =>1 , 1 => 1) (pour signifier que mes checkbox 1 et 2 sont validées.)

et j'aimerais créer un tableau $hobby avec ces valeur dedans

donc mon $$var doit me créer une variable $hobby...

et apprement c'est la que ca coince...

Lien vers le commentaire
Partager sur d’autres sites

Oui.

$$var[$arvar] = $arval;

est fortement déconseillé.

Il ne sait pas si c'est :

$$var puis [$arvar]

ou si c'est

$var[$arvar]  
//puis le $

Il te faut le lui indiquer, et pour ca (de mémoire) :

${$var[$arvar]} = $arval;

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Pour le coup j'ai du mal à voir pourquoi une version bloque le script, si le formulaire est considéré comme identique. Sur la debian, il n'y aurait pas l'extension suhoshin d'installée ?

Pour ce qui est de ton script, en gros tu essayes de recopier à l'arrache le contenu de $_POST dans l'environnement global non ? Si c'est bien le cas, quel est l'intérêt, mis à part les soucis de sécurité ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...