Récupérer les chps "name" d'un formulaire, même si l'utilisateur n'a pas répondu

Petit nouveau ! | 1 Messages

10 nov. 2008, 15:16

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-)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

10 nov. 2008, 15:24

Une valeur par défaut ?

Invité
Invité n'ayant pas de compte PHPfrance

10 nov. 2008, 23:56

Si je dois comprendre quelque chose, désolé, je ne vois pas. :?:

zephir11060
Invité n'ayant pas de compte PHPfrance

14 nov. 2008, 18:04

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...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 nov. 2008, 19:02

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";
...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...