Page 1 sur 1

Récupérer les chps "name" d'un formulaire, même si

Posté : 10 nov. 2008, 15:16
par zephir1106
Bonjour à tous,

Débutant en PHP, je souhaiterais savoir ce qu'il faut rajouter à mon code pour recevoir dans le mail le champs "name", même si l'utilisateur n'a pas répondu à une question.
Pour un formulaire vide, je ne reçois actuellement que les valeurs "name" des champs "<input name="name" type="text">"
et rien pour les champs "type="checkbox"" ou "type="radio"".
Voici mon fichier PHP
$TO = 'adresse mail';
$h  = 'From: ' . $TO;
$subject = 'questionnaire';
$message = '';

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= $key.' : '.$val.'\n<br>';
}

//echo $message;
mail($TO, $subject, $message, $h);
Header('Location: http://siteinternet.fr');[php]

Merci pour votre aide     8-)

Posté : 10 nov. 2008, 15:24
par ouckileou
Une valeur par défaut ?

Posté : 10 nov. 2008, 23:56
par Invité
Si je dois comprendre quelque chose, désolé, je ne vois pas. :?:

Je ne connais pas PHP

Posté : 14 nov. 2008, 18:04
par zephir11060
Personne ne connait la solution? Je ne comprend pas j'ai testé plein de solution depuis mon post et ça ne marche pas, j'ai enlevé la boucle et ajouté "$formExtGar = $_post['ExtGar'];" ou "$_post['ExtGar'];" et rien ne marche
Quelqu'un peut m'aider SVP...

Posté : 14 nov. 2008, 19:02
par Ryle
Y a pas vraiment de solution à ton problème, c'est le comportement normal du navigateur : il n'envoi au serveur que les valeurs des cases à cocher / boutons radios / liste déroulantes qui sont sélectionnés.

Donc si une case n'est pas cochée, elle n'est pas envoyée. Seule solution pour toi pour qu'une case n'a pas été cochée, c'est de les gérer une par une et de vérifier pour chaque si celle-ci a été cochée ou pas. Pour cela, il suffit de tester leur présence dans les données envoyées :
if (isSet($_POST['case_1'])) // si l'attribut name de ta case est "case_1"
  $message .= "Case n°1 : cochée";
else
  $message .= "Case n°1 : pas cochée";
...