Probleme code Formulaire PhP

Résolu/Fermé
Antho031 - 19 avril 2011 à 17:16
boissonnfive Messages postés 422 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 30 avril 2018 - 19 avril 2011 à 17:47
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>
A voir également:

3 réponses

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
Ah ouiii c'est exact !! Merci beaucoup ;)
0
boissonnfive Messages postés 422 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 30 avril 2018 40
19 avril 2011 à 17:47
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