Salve, vorrei creare un semplicissimo quiz a risposta multipla. La pagina dovrebbe proporre un evento e 4 possibili date in altrettanti pulsanti.
Le domande le prendo da un file di testo formattato in questo modo:
Spedizione dei Mille;1860;1875;1865;1855;1860
Proclamazione del Regno d'Italia;1861;1865;1860;1871;1861
(domanda, 4 opzioni, risposta corretta).
Lo script che ho creato legge il file e crea la domanda in modo corretto, però si incasina e confronta la risposta alla domanda n con la risposta alla domanda n+1 ma non riesco a capire dove sia l'errore.
ecco lo script:
Codice PHP:
$domande = file("quiz.txt");$num_domande = count($domande);
$ultima_domanda = isset($_POST['ultima_domanda']) ? $_POST['ultima_domanda'] : -1;
if ($ultima_domanda == $num_domande - 1) { echo "<p>Quiz completato!</p>"; exit();}
$indice_domanda = $ultima_domanda + 1;$domanda_corrente = explode(";", $domande[$indice_domanda]);
echo "<h2>Domanda</h2>";
echo "<p>" . trim($domanda_corrente[0]) . "</p>";
$risposte = array(trim($domanda_corrente[1]), trim($domanda_corrente[2]), trim($domanda_corrente[3]), trim($domanda_corrente[4]));shuffle($risposte);
echo "<form method='post'>";
echo "<input type='hidden' name='ultima_domanda' value='$indice_domanda'>";
echo "<input type='submit' name='risposta' value='" . htmlspecialchars($risposte[0]) . "'><br>";
echo "<input type='submit' name='risposta' value='" . htmlspecialchars($risposte[1]) . "'><br>";
echo "<input type='submit' name='risposta' value='" . htmlspecialchars($risposte[2]) . "'><br>";
echo "<input type='submit' name='risposta' value='" . htmlspecialchars($risposte[3]) . "'><br>";
echo "</form>";
if (isset($_POST['risposta'])) { $risposta_utente = $_POST['risposta'];
if ($risposta_utente == trim($domanda_corrente[5])) { echo "<p class='risposta-corretta'>Risposta corretta!</p>"; } else { echo "<p class='risposta-sbagliata'>Risposta sbagliata. La risposta corretta era: " . trim($domanda_corrente[5]) . "</p>"; }}
grazie