Un petit Quiz avec un formulaire d' inscripti

Bonjour,
je suis débutant en php... je dois faire un petit Quiz avec un formulaire d' inscription, j' ai déjà fais une partie du travail mais j suis BLOQUER !!!!!!!!!!!!!
Il me faut un code en php qui pourrai m' afficher les réponses de mon Quizz tout en me disant combien de point l'utilisateur a obtenu mais a afficher sur une nouvelle page je vous donne ce que j'ai déjà commencer:::

<html> 
			<head>
			
			<link rel="stylesheet" href="style.css" />
				<title>A vous de jouer!!!</title> 
			</head> 
	<body> 
			<form action="totale.php" method="post"> 
				<div align=center>
				<h1><img src="europa5.jpg" class="imageflottante" alt="imageflottante"></h1>
					
							<p class="dessous">Q1) Combien de pays étaient membres de la Communauté Européenne fin 1986 ?</p>
                             
							  <span class="ombre"><input type="radio" name="cmb" value="9" id="Q1"  /> <label for="9">9</label> <br/></span>
							  <span class="ombre"><input type="radio" name="cmb" value="12" id="Q2" /> <label for="12">12</label> <br/></span>
							  <span class="ombre"><input type="radio" name="cmb" value="15" id="Q3"  /> <label for="15">15</label><br/></span>
							  
							 <p>Q2) Que signifie l'abréviation "UEM" ?</P> 
							  <span class="ombre"><input type="radio" name="UEM" value="Union economique et monaitaire" id="Q4"  /> <label for="Union economique et monaitaire">Union economique et monaitaire</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UEM" value="Union européenne monaitaire" id="Q5" /> <label for="Union européenne monaitaire">Union européenne monaitaire</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UEM" value="Union economique et militaire" id="Q6"  /> <label for="Union economique et militaire">Union economique et militaire</label></span>
							
							<p>Q3) Quels sont les deux pays qui ne rejoignent pas l'"UE" en 2004 ?</P>
							  <span class="ombre"><input type="radio" name="UE" value="1" id="Q3"  /> <label for="la Roumanie et la Bulgarie">la Roumanie et la Bulgarie</label><br/></span> 
							  <span class="ombre"><input type="radio" name="UE" value="2" id="Q3" /> <label for="La Hongrie et Chypre">La Hongrie et Chypre</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UE" value="3" id="Q3"  /> <label for="La Slovénie et la Slovaquie">La Slovénie et la Slovaquie</label><br/></span> 
							  
							<p>Q4) En quelle année fût créée la CEE(communauté économique européenne ) et la CEEA(euratom) ?</P>
							  <span class="ombre"><input type="radio" name="reunion" value="1" id="Q7"  /> <label for="1986">1986</label> <br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="2" id="Q8" /> <label for="1996">1996</label><br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="3" id="Q9"  /> <label for="1945">1945</label> <br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="4" id="Q10" /> <label for="1950">1950</label></td></span>
							  
							  <p>Q5) Où se trouve le Parlement européen ?</P>
							  <span class="ombre"><input type="radio" name="parlement" value="1" id="Q11"  /> <label for="Autriche">Autriche</label> <br/></span>
							   <span class="ombre"><input type="radio" name="parlement" value="2" id="Q12" /> <label for="Belgique">Belgique</label><br/></span>
							    <span class="ombre"><input type="radio" name="parlement" value="3" id="Q13"  /> <label for="France">France</label> <br/></span>
							  <span class="ombre"><input type="radio" name="parlement" value="4" id="Q14" /> <label for="Allemagne">Allemagne</label></td><br/><br/></span>
					
							<input type="submit" value="Valider">
							
							<?php
							if(isset($_POST['Valider']))
							{

12 réponses

  1. Contributeur
    Bonjour,

    Le code php sera à mettre dans la page totale.php.
    Vous devez récupérer tous vos réponses avec la variable $_POST (par exemple $_POST['cmb'] pour avoir la valeur donné par la première question. Vous devez faire ça pour chaque question et comparer avec la bonne réponse.
    Si la réponse est correcte, incrémenter une variable qu'on affichera à la fin avec un echo.
    0
    1. Merci pour la réponse rapide.
      J'ai essayer de faire quelque chose en suivant votre conseil donc j' ai bien mis un code php dans la page totale.php mais ça ne fonctionne pas correctement
      donc j' aurai encore besoin de vos conseil ou votre solution ;)
      merciiiiii

      Voila le code :
      
      $points =0;
      $value12	  					  = $_POST['12'];
      $valueUnioneuropéennemonaitaire  = $_POST['Unioneuropéennemonaitaire']; $valuelaRoumanieetlaBulgarie          = $_POST['laRoumanieetlaBulgarie'];
       $value3      					  =$_POST['3'];
       $value2      					  =$_POST['2'];
      								 
      $reponse1						  =$_POST["cmb"]; 
      $reponse2						  =$_POST["UEM"]; 
      $reponse3						  =$_POST["UE"];                       $reponse4						  =$_POST["reunion"]; 
      $reponse5				     	  =$_POST["parlement"];
      								  
      								 
      if ($reponse1 == $value12 ) 
      								 {
      								  $points ++; 
      								 }
       if ($reponse2 == $valueUnioneuropéennemonaitaire ) 
      								  {
      								   $points ++;
      								  }                                                             if ($reponse3 == $valuelaRoumanieetlaBulgarie) 
      								  {
      								   $points ++; 
      						          }
       if ($reponse4 == $value3 ) 
      								 {
      								  $points ++;
      								 }
      if ($reponse5 == $value2 ) 
      								 {
      								  $points ++; 
      								 }
      echo 'Vous avez un total de : '.$points.'';
      
      
      0
      1. Contributeur
        Pas besoin de définir autant de variable au début.

        $points = 0; 
        if (isset($_POST["cmb"]) && $_POST["cmb"] == 12 ) { 
          $points ++;  
        } 
        [...] 
        echo "Vous avez un total de : ".$points; 


        isset(variable) permet de savoir si la variable existe. Si jamais aucune réponse n'est cochée dans le formulaire, il n'ira pas plus loin. Sinon il vous mettra une erreur dans votre if vu qu'il ne connaîtra pas la variable.
        Pour les bonnes réponses, on ne les récupère pas avec un POST, mais simplement en les mettant à la main.
        0
    2. Merci énormément ça marche.

      Mais j' aurai encore une petite question concernant le formulaire
      il passe a la page du Quizz même si les champs ne sont pas rempli alors que j' ai fais la demande qu'il prévienne l' utilisateur au cas ou il ne sont pas rempli
      je vous passe le code::

      		<?php
      			if (isset ($_POST['Envoyer'])) 
      			{
      				if(isset($_POST['nom'])) $nom	= $_POST['nom'];
      				else $nom = '';
      				if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];
      				else $prenom = '';
      
      				if ($nom=='' && $prenom=='')
      						{
      				echo 'Veuillez remplir tout les champs';
      						}
      				else
      						{
      					echo' Merci pour les informations et a vous de jouer';
      						}	
      						
      						
      						
      			}
      	    ?>
      
      0
      1. Contributeur
        Pour être sûr de comprendre...

        Vous avez une page d'inscription avec nom et prenom
        Une page avec ce test php pour savoir si nom et prenom sont remplis
        Et une dernière page avec le quizz ?
        0
    3. excusez moi
      non le formulaire est avec le code php que je vous est donner.
      je vais vous donner le code au complet
      <html
      		<head>
      		<link rel="stylesheet" href="style.css" />
      		<title>Page d'inscription</title></head>
      	<body class="image">
      	
      			<div align="center" style="Helvetica"><br/></br/></br/><br/>
      		<h1 style= "text-align: center; color: #ffffff;">Inscrivez-vous et jouer</h1>
      		<form name="inscription" method="POST" action="jeux2.php">
      				<input type=hidden name=subject value=contact>
      				<span class=plus>nom:
      				<td><input type="text" name="nom" >
      				prenom:
      				<input name="prenom" type="text" value="">
      				email:
      				<input type="text" name="email" title="entrer une adresse valide" value="@" /></span>
      			    <input type=submit value=Envoyer >  <input type="reset" value="Annuler" >
      			
      				
      				
      				<select name="choix">
      				<option value="Allemagne">Allemagne</option>
      				<option value="Autriche"> Autriche </option>
      				<option value="Belgique"> Belgique </option>
      				<option value="Danemark"> Danemark </option>
      				<option value="Espagne"> Espagne </option>
      				<option value="France">	  France </option>
      				<option value="Pays-Bas"> Pays-Bas </option>
      				<option value="Suisse"> Suisse </option>
      				<option value="Suède"> Suède </option>
      				
      				
      				</select>
      		
      				</form>
      		<?php
      			if (isset ($_POST['Envoyer'])) 
      			{
      				if(isset($_POST['nom'])) $nom	= $_POST['nom'];
      				else $nom = '';
      				if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];
      				else $prenom = '';
      
      						if ($nom=='' && $prenom=='')
      						{
      							echo 'Veuillez remplir tout les champs';
      						}
      						else
      						{
      							echo' Merci pour les informations et a vous de jouer';
      						}	
      						
      						
      						
      			}
      	    ?>
      
      0
      1. et en plus de la page avec le Quizz j' ai une autre page avec le totale
        0
        1. Contributeur
          Je sais pourquoi et j'ai plusieurs solutions en tête, mais elles sont soit très moches (passer les variables post en cookies ou en session à un moment), soit complexes (javascript, ajax)
          Arf :$
          0
          1. Bien OK,

            merci beaucoup en tout cas, mais je vais faire sans alors je voulais également créé une base de donnée pour enregistrer les utilisateurs mais ça me prend un temps fou :()
            Incroyable quand on ne connais pas les trucs et astuces pour aller plus rapidement.
            Merci énormément pour votre compréhension et à bientôt.
            0
            1. Contributeur
              Eh bien pendant la nuit, j'ai eu une révélation pour feinter pour faire ce que tu veux faire (obliger le gugusse à mettre son nom et son prenom) Est-ce que ça te tente toujours ?
              0
            2. Contributeur
              Dans ton bouton de submit, tu rajoutes ceci :
              <input type=submit value=Envoyer disabled="disabled" id="envoyer" >
              Ce qui va griser ton bouton (ils ne pourront pas cliquer dessus) et on rajouter un id pour pouvoir le récupérer plus tard dans la page.

              Et pour tes champs nom et prenom, je rajoute un id (il peut être le même que le name, ça ne dérange pas) et un petit code javascript tout simple.
              <input type="text" name="nom"  id="nom" onchange="valid_form()">

              En gros, lorsque la valeur de l'input va changer, il va appeler la fonction javascript valid_form()

              Et donc en javascript, tu mets ce code au début de ta page. Tu le mets au début de ton <body> :
              <script language="Javascript">
                function valid_form(){
                  if((document.getElementById('nom').innerHTML != '') && (document.getElementById('prenom') != '')){
                    document.getElementById('envoyer').disabled = false;
                  }
                }
              </script>

              En gros, il va vérifier que les éléments dans ta page qui ont les id nom et prenom ne sont pas vides. Si c'est bon, alors il va activer le bouton d'envoi du formulaire.

              Et tu enlèves ton code php après le if (isset ($_POST['Envoyer']))
              0
          2. Merci encore, je l'ai tester
            donc le bouton envoyer devient gris mais quand je rempli les champs il ne reprend pas ses fonctions pour passer a la page suivante ca dois être quelque chose de minime merci encore
            <html
            		<head>
            		<link rel="stylesheet" href="style.css" />
            		<title>Page d'inscription</title></head>
            	<body class="image">
            			<script language="Javascript">
            		  function valid_form(){
            			if((document.getElementById('nom').innerHTML != '') && (document.getElementById('prenom') != '')){
            			  document.getElementById('envoyer').disabled = false;
            			}
            		  }
            </script
            	
            			<div align="center" style="Helvetica"><br/></br/></br/><br/>
            		<h1 style= "text-align: center; color: #ffffff;">Inscrivez-vous et jouer</h1>
            		<form name="inscription" method="POST" action="jeux2.php">
            				<input type=hidden name=subject value=contact>
            				<span class=plus>nom:
            				<td><input type="text" name="nom"  id="nom" onchange="valid_form()">
            				prenom:
            				<input type="text" name="nom"  id="prenom" onchange="valid_form()">
            				email:
            				<input type="text" name="email" title="entrer une adresse valide" value="@" /></span>
            			   <input type=submit value=Envoyer disabled="disabled" id="envoyer" >  <input type="reset" value="Annuler" >
            			
            				
            				
            				<select name="choix">
            				<option value="Allemagne">Allemagne</option>
            				<option value="Autriche"> Autriche </option>
            				<option value="Belgique"> Belgique </option>
            				<option value="Danemark"> Danemark </option>
            				<option value="Espagne"> Espagne </option>
            				<option value="France">	  France </option>
            				<option value="Pays-Bas"> Pays-Bas </option>
            				<option value="Suisse"> Suisse </option>
            				<option value="Suède"> Suède </option>
            				
            				
            				</select>
            		
            				</form>
            		<?php
            			if (isset ($_POST['Envoyer'])) 
            			{
            				
            						
            						
            						
            			}
            	    ?>
            
            	</body>
            </html>
            
            0
            1. Contributeur
              Tu peux enlever le :
              <?php 
                 if (isset ($_POST['Envoyer']))  
                 { 
                   
                     
                     
                     
                 } 
                   ?>


              Mais attends, laisse-moi voir
              0
              1. Contributeur
                Oui, pardon, j'ai fait quelques fautes dans ton javascript. Je te redonne la fonction :
                function valid_form(){
                			if((document.getElementById('nom').value != '') && (document.getElementById('prenom').value != '')){
                			  document.getElementById('envoyer').disabled = false;
                			}
                		  }


                Vu que les valeurs de prenom et nom sont dans des input, c'était .value qu'il fallait et non .innerHTML
                J'ai testé le code.
                0
              2. Merci infiniment
                !!!! CA MARCHE ; )
                vraiment heureusement que t la je sais pas comment j' aurai fais
                mais a bientôt
                merci énormément si je peux faire quelque chose pour toi n' hésite pas a me contacter
                0
            2. MERCIIIIII
              0
              1. Contributeur
                De rien, ça m'a fait plaisir de t'aider =)
                Pense à mettre ton sujet en résolu !
                0
            3. En" résolu" c.a.d ?
              et comment ?stp
              0
              1. Contributeur
                En-dessous de ton titre de post, tu dois avoir le lien "Marquer ce sujet comme résolu" =)
                0