par
Ryle » 20 déc. 2008, 10:57
Alors déjà quelques explications :
Lorsque tu envois des données à php, celles qui sont passées dans l'url sont automatiquement ajoutée dans le tableau associatif $_GET et celles qui sont soumises via la méthode "post" alimentent le tableau associatif $_POST. Ainsi, en faisant appel à la clé du tableau correpondant au nom du champ, tu vas pouvoir récupérer la valeur spécifiée :
Si ton champ se nomme "user_firstname" et qu'il est envoyé en post, alors $_POST['user_firstname'] sera égal à la valeur fournie par l'utilisateur (ici ce serait donc 898799) .
Lorsque tu fais la boucle foreach suivante :
foreach($_POST as $index => $valeur) {
$$index = mysql_real_escape_string(trim($valeur));
}
Tu demande à ce que chaque couple clé/valeur contenu dans le tableau $_POST soit utilisée de façon à créer la variable $"clé" et lui affecter la la valeur correspondante. Tu vas donc obtenir la varibale $user_firstname qui aura pour valeur "898799". Cette variable, comme l'indique ton var_dump est de type String, c'est une simple chaine de caractère.
Pour l'utiliser ou l'afficher il te faut donc simplement faire un :
echo $user_firstname;
Lorsque tu fais un
echo $user_firstname['user_firstname'];
au lieu d'afficher la chaine (898799) tu indiques avec les crochets [] que $user_firstname doit être considéré par php comme un tableau dont chaque élément correspond à un caractère de la chaine. Voilà pourquoi php ne te retourne qu'un seul caractère, puisque pour lui, tu lui demandes celui qui se trouve à la position ['user_firstname'].
C'est y plus clair ?
