Input hidden

Résolu/Fermé
-
 Mathildeeee -
Bonjour,
j'ai un petit probleme
mon code n'arrive pas à m'afficher les données dans mon input hidden. comment faire ?

<?php
$i=1;
while($i <= 40) { 
echo"<p align='center'> <font size='6'> Question ".$i.": </font></p> <br>".$_POST['question'.$i].'<br>';

	if (isset($_POST['reponse'.$i]))
	{
	
      echo "<p align='center'> Vous avez choisi :  ".$_POST['reponse'.$i]."</p> <br>";
	echo "<p align='center'> La bonne réponse est : ".$_POST['juste'.$i]."</p> <br>";
	}
	else
	{
      echo "<p align='center'> Vous n'avez rien choisi </p> <br>" ;
	}
$i++;
 }
?>

<form method="post" action="correction.php">
<?php	
$bdd = new PDO('mysql:host=localhost;dbname=quizz','root', '');	
$reponse = $bdd->query('SELECT * FROM qcm order by rand()');
$i=0;
$j=1;
while ($donnees = $reponse->fetch())
{

$i++;
$j++;
echo "<div id='Question".$i."'><p align='center'><font size='6'>Question".$i.": </font> </p> </div>  <br> <p align='center'>".$donnees['question']." </p>";	
?> <BR>
<tr><td> <p align='center' > <input type="radio" name="<?php echo 'reponse'.$i; ?>" value="<?php echo $donnees['rep1']; ?>"/> 
<?php echo $donnees['rep1']; ?></td></tr> <BR> </p>
<tr><td> <p align='center' ><input type="radio" name="<?php echo 'reponse'.$i; ?>" value="<?php echo $donnees['rep2']; ?>"/>
<?php echo $donnees['rep2']; ?></td></tr> <BR> </p>
<tr><td> <p align='center' ><input type="radio" name="<?php echo 'reponse'.$i; ?>" value="<?php echo $donnees['rep3']; ?>"/>
<?php echo $donnees['rep3']; ?>	 </td></tr> <BR> </p>
<input type="hidden" name="<?php echo 'question'.$i; ?>" value="<?php echo $donnees['question']; ?>"/>
<input type="hidden" name="<?php echo 'juste'.$i; ?>" value="<?php echo $donnees['rep_juste']; ?>"/> 
<input type="hidden" name="<?php echo'commentaire'.$i; ?>" value="<?php echo $donnees['commentaire']; ?>" />
 
<br>
<?php 
	if($i<26){
		echo "<p align='center'><a class='stylebouton' href='#Question".$j."' rel="nofollow noopener noreferrer" target="_blank">Suivant</a> </p>";
	}
	else {
		echo "<p align='center'><input name='corriger' type='submit' value='Correction' </p>";
		

	}
}
?>
</form>

1 réponse

Messages postés
34725
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
4 003
Bonjour,

Plusieurs choses ne vont pas dans la façon dont sont codées tes pages...

Déjà .. évite de mettre les réponses sur la page des questions .. n'importe qui faisant apparaitre le code-source de ta page pourrait voir les réponses .... (même dans des champs hidden )
Ensuite... pense à placer le code de connexion à ta BDD dans un fichier à part (comme ça tu pourras l'inclure dans toutes tes pages sans avoir à retaper le code)
Pense également à activer l'affichage des erreurs PHP ET PDO.
Puis enfin .. récupère PROPREMENT les variables POST AVANT de les utiliser.

Pour ce qui est du mécanisme .. la table qui contient tes questions n'aurait-elle pas un champ "ID" ?
Si oui... tu ne mets cet ID dans l'attribut NAME de tes INPUT questions.
et dans la page "correction" .. tu vas, via une requête SQL, regarder la réponse correspondante à l'ID de la question.

Quoi qu'il en soit, commence par lire (et appliquer..) ceci :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

et ça :
https://www.commentcamarche.net/faq/1391-php-notice-undefined-index

Merci beaucoup !