Formulaire php ereure Notice: Undefined index [Fermé]

Signaler
-
 rawars -
Bonjour,
je suis en train de realiser un code en php pour l'integer dans mon site pour mettre un place un systeme de sondage (je m'occuperait de MySQL plus tard )

voici le messages d'ereures:

Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 8
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 10
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 12
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 14
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 16
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 18
Notice: Undefined index: sondage_saison13 in C:\wamp\www\south park streaming\formulaire.php on line 20
Vous n avez coché aucune case

et voici le code:

<html>
<head>
</head>
<body>

<?php
if ($_POST['sondage_saison13']=='1')
echo 'vous avez voté pour l épisode 1';
elseif ($_POST['sondage_saison13']=='2')
echo 'vous avez voté pour l épisode 2';
elseif ($_POST['sondage_saison13']=='3')
echo 'vous avez voté pour l épisode 3';
elseif ($_POST['sondage_saison13']=='4')
echo 'vous avez voté pour l épisode 4';
elseif ($_POST['sondage_saison13']=='5')
echo 'vous avez voté pour l épisode 5';
elseif ($_POST['sondage_saison13']=='6')
echo 'vous avez voté pour l épisode 6';
elseif ($_POST['sondage_saison13']=='7')
echo 'vous avez voté pour l épisode 7';
else
echo 'Vous n avez coché aucune case';

?>


<form method="post" action="formulaire.php">
<p>
<fieldset>
<legend>Sondage</legend>
<label for="sondage">quel est votre episode preferé?</label> : <br/>
<input type="checkbox" name="sondage_saison13" value="1" />epsiode 1 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="2" />epsiode 2 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="3" />epsiode 3 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="4" />epsiode 4 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="5" />epsiode 5 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="6" />epsiode 6 de la saison 13<br/>
<input type="checkbox" name="sondage_saison13" value="7" />epsiode 7 de la saison 13<br/>
<input type="submit" value="voter" />
</fieldset>
</p>
</form>

</body>
</html>


si quelqu'un pourrait m'aide sa fait 2.30h que je parcoure les forums et je n'ai rien trouver de concret pour enlever les erreurs le pire c'est que le code marche ....
merci d'avance

5 réponses

Bonjour

Quand tu affiches ton formulaire pour la première fois, la variable $_POST['sondage_saison13'] n'est pas définie puisque le formulaire n'a pas encore été renvoyé par le client. Donc tu ne peux pas tester sa valeur.
Il ne faut faire la série de tests que si la variable est définie :
if (isset ($_POST['sondage_saison13'])) {
if ($_POST['sondage_saison13']=='1')
echo 'vous avez voté pour l épisode 1';
elseif ($_POST['sondage_saison13']=='2')
echo 'vous avez voté pour l épisode 2';
elseif ($_POST['sondage_saison13']=='3')
echo 'vous avez voté pour l épisode 3';
elseif ($_POST['sondage_saison13']=='4')
echo 'vous avez voté pour l épisode 4';
elseif ($_POST['sondage_saison13']=='5')
echo 'vous avez voté pour l épisode 5';
elseif ($_POST['sondage_saison13']=='6')
echo 'vous avez voté pour l épisode 6';
elseif ($_POST['sondage_saison13']=='7')
echo 'vous avez voté pour l épisode 7';
else
echo 'Vous n avez coché aucune case'; 
}
ok merci je test j'avait trouver que le probleme venai de "isset" mais j'arivait jamais a le mettre en place concretement
sa marche merci tu gere je commencait a en avoir vraivement marre
merci encore
Je conseille encore une fois l'utilisation des classes XBPlog : http://www.xbplog.com/formulaire-en-php.php

Avec ces outils, tu n'aurais pas à faire tous ces tests très lourds.

Il suffirait de faire :

if ($f->checkForm($_POST, 1) === true)
echo 'Vous avez vôté pour l\'épisode '.$_POST['sondage_saison13'];

Bonne programmation ;)
ok merci je regarde sa