Version complète: sur le forum Webmaster Hub : récupération de "checkbox"
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Gregory
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)

CODE
    $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 smile.gif

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

la première chose à faire à mon avis est :
CODE
var_dump( $_POST );


Il s'agit là de la base du débugage wink.gif Ainsi tu verras quelle "tête" ont tes données sur l'un et l'autre des serveurs.
Gregory
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...
Anonymus
Oui.
CODE
$$var[$arvar] = $arval;

est fortement déconseillé.
Il ne sait pas si c'est :
CODE
$$var puis [$arvar]

ou si c'est
CODE
$var[$arvar]  
//puis le $


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

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



Nico.
Kioob
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é ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.