Probleme code Formulaire PhP

Résolu
Antho031 -  
boissonnfive Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Au lancement de ma page cet erreur s'affiche :
Notice: Undefined index: result in C:\wamp\www\formulaire\quizz.inc.php on line 2

Voici ma page quizz.inc.php

<?php $page = basename($_SERVER["PHP_SELF"]);
if (!$_POST["result"]) {
  print "<form action=\"$page\" method='post'>\n";
  for ($i=0; $i<count($quizz); $i++) {
        print '<blockquote><span class="orange">';
        print "\t".$quizz[$i][0]."\n";
        print '</span><br /><br />';
            for ($j=1; $j<count($quizz[$i])-2; $j++) {
           $quest=$quizz[$i][$j];
           print "<input type='radio' name=\"$i\" value=\"$j\" /> $quest<br />\n ";
            }
        print "</blockquote><hr />";
  }
  print "<input type='hidden' name='result' value='voir' /><br />\n<center>";
  print "<input type='submit' style='background-color:#f66' onmouseover=\"this.style.color='#fff'\" onmouseout=\"this.style.color='#000'\" onmousedown=\"this.style.color='#f90'\" value='Vos résultats et la correction' /></center></form>\n";
}
else {
  print '<h4 align="center">Résultats du quiz</h4><br />';
  //$points=0;
  for($i=0; $i<count($quizz); $i++) {
        $reponse = trim($_POST[$i]);
        print  '<blockquote><span class="orange">';
        print "\t".$quizz[$i][0]."</span><br /><br />\n";
        $numero_bonne=$quizz[$i][count($quizz[$i])-2]; // avant dernière valeur du tableau
       $bonne=$quizz[$i][$numero_bonne]; // Bonne réponse
        if ($reponse==$numero_bonne) {
           print "Votre réponse <b><i>".$bonne."</i></b> est exacte.";
           //$points++;
           }
           else {
                print "La bonne réponse est <b>".$bonne."</b> mais vous ";
                if ($reponse=="") {
                   print "n'avez rien répondu.";
                }
                else {
                   print 'avez choisi la proposition" <b>'.$quizz[$i][$reponse].' </b>".';
                }
           }
        $commentaire=$quizz[$i][count($quizz[$i])-1]; // dernière valeur du tableau
       print "<br />".$commentaire."<br />\n";       
       print "</blockquote><hr />\n";
  }
  print"<br /><h4 align='center'>Selon vos réponses nous vous conseillons le produit suivant : </h4>\n";
  echo "<h4 align='center'><a href=\"http://www.google.fr\">Nom_Produit</a></h4>";
  /*if($points==count($quizz)) {
        print"<br /><h4 align='center'>Félicitations vous avez tout juste&nbsp;!</h4>\n";
        }
        else {
          print "<br /><h4 align='center'>Vous avez $points bonne";
          if ($points>1) print "s";
          print " réponse";
          if ($points>1) print "s";
          print " sur ".count($quizz)." questions.</h4>\n";
        }*/
}
?>



Ainsi que ma page question.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Quiz</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">

body {
  font-family: Verdana, Arial, Helvetica, sans-serif;
  background-color: #ffffff;
  font-size: 11px;
  color: #000000;
  margin-top: 0;
  margin-left: 0;
  padding:0;
}
p, ul, ol, td {
  text-align: justify;
}
.orange {
  color: #ff6600;
  background-color: transparent;
  font-weight: bold;

</style></head>
<body>
<center>
<h1>Quiz </h1></center>
<p></p>
<?php

$quizz= array(
array("1 - Pensez vous être couvert?","Oui","Non","2","Vous n'êtes pas couvert."),
array("2 - L'alcool désaltère&nbsp;:","Vrai","Faux","2","L'alcool déshydrate et la soif persiste. Plus on boit d'alcool plus on a soif."),
array("3 - L'alcool stimule les centres nerveux&nbsp;:","Vrai","Faux","2","L'alcool provoque une dangereuse impression d'euphorie et perturbe les centres nerveux de la vision, de l'audition, de la coordination, et de l'attention. Les temps de réaction sont considérablement augmentés, multipliant ainsi les risques d'accidents..."),
array("4 - L'alcool rend viril&nbsp;:","Vrai","Faux","2","L'alcool ne tient jamais ce qu'il promet. Il donne une fausse sensation de puissance due à la perte de contrôle de soi. Il n'apporte ni force&nbsp;; ni virilité, ni réussite, au contraire. De plus, l'impuissance est particulièrement fréquente chez l'alcoolique chronique.")
);
include("quizz.inc.php");
?>
</body>
</html>

3 réponses

le père
 
Bonjour

Pour pouvoir faire le test if (!$_POST["result"]), il faut que la variable $_POST["result"] existe ; or elle n'existe pas tant que tu n'as pas envoyé le formulaire.

Il faudrait faire le test if (!isset($_POST["result"]))
0
Antho031
 
Ah ouiii c'est exact !! Merci beaucoup ;)
0
boissonnfive Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   40
 
Bonjour,

le problème vient du fait que tu fais un test sur le tableau $_POST avant d'avoir afficher le formulaire lui-meme; donc il ne peut rien y avoir dedans puisque le formulaire n'a pas été affiché; donc personne n'a pu mettre de données dedans.

if (!$_POST["result"]) {  Le tableau n'est pas rempli à ce niveau là
  print "<form action=\"$page\" method='post'>\n";

...

                
0