Comment afficher les résultats d'un quiz en ligne (pas de java/sql, php pur)?


J'ai commencé avec un fichier texte délimité par des virgules données.txt

Qu'est Ce qu'un panda?,Un animal,une plante,Un membre de la famille,Un enseignant
qu'est Ce qu'un rubix cube?, Un puzzle,Un labyrinthe,Une boîte, Un musée
HTML est...Principal de balisage langue pour les pages web, Sécurité inter-sites, Intelligemment structuré Script, Extrêmement sûr et sécurisé
PHP est...Usage général langage de script côté serveur, Sécurité intersite, Traitement Produits Hypertextes, Processus HTML Jolie

, j'ai chargé mes questions à partir du fichier texte et mon principal.php ressemble à ceci

<h2>MasterQuiz Online</h2>
<p>Where would you like to go?</p>

<ul>
    <li><a href='question.php'>Take quiz</a></li>
    <li><a href='module.php'>Admin Module</a></li>
</ul>

<?php
//text file
$file = fopen('data.txt', 'r');
//array setup
$array = array();
while ($line = fgetcsv($file)) {
   $array[] = $line;
}

fclose($file);

session_start();
$_SESSION["questions_array"]=$array;

//display var and index
var_dump($array);

?>

Alors que c'est ce que ma question.php ressemble à

<h2>Online Quiz</h2>

<form action="answer.php" method="post">

<?php

session_start();
if(sizeof($_SESSION['questions_array']) > 0 )
{
    // Get the next question off of the quiz in session
    $data = array_shift($_SESSION["questions_array"]);

    echo '<p>'.array_shift($data).'</p>'; // next question
    //shuffle($data); //shuffle choices, toggle if needed

    foreach ($data as $a => $answer){ //answers
        echo 
             '<input type="radio" name="question-'.$data.'" id="question-'.$data.'"'.
             'value="'.$a.'"/>'.
             '<label for="question-'.$data.'">'.$answer.'</label>'.
             '<br>';
             }  
}
else{
  header('location:result.php'); //questions array is empty, go to results page
}
?>
<br>
<input type="submit" name="submit" value="Submit"/>

Fondamentalement, j'ai besoin de deux pages de résultat.

On est à chaque fois la submit bouton est frappé, l'utilisateur est dirigé vers une autre page (réponse.php ) où il affiche si l'utilisateur a obtenu la bonne réponse ou non. Un bouton Continuer est également affiché afin que l'utilisateur puisse passer au suivant question.

C'est ce que j'essaie de réaliser:

Résultats de la question

CORRECT / INCORRECT / / dépend si l'utilisateur a obtenu la bonne réponse ou non

Réponse Correcte: //insérer la réponse correcte
Votre Réponse: //insertion d'utilisateur sélectionné réponse

(continuer le lien)

Jusqu'à présent, c'est ce que mon réponse.php ressemble à

<h2>Question Results</h2>

<?php

session_start();
$array=$_SESSION["questions_array"];

//insert whether correct or incorrect here

echo "Your answer:<br>";
echo "Correct answer:".$array[0][1];

?>
<br><br>
<a href="question.php">Continue</a>

Mais ça ne marche pas. Et je suis complètement coincé pourquoi. Le $array[0][1] m'a donné quelque chose de différent (la mauvaise valeur de tableau que je recherche) quant à ce qu'il me donne sur d'autres pages (la valeur que je recherche).

Si vous avez des suggestions sur la façon dont je peux améliorer mes codes et travailler, j'apprécierais toute aide! Merci à l'avance!

Et le second (je suis tellement désolé si cela devient long mais je ne veux pas faire de messages séparés sur la même idée)

J'ai besoin de faire une page de résultats (résultat.php) où le résultat global est affiche lorsque l'utilisateur remplit le questionnaire.

exemple de sortie:

entrez la description de l'image ici

Honnêtement, je suis confus sur la façon de le faire car c'est la première fois que je fais quelque chose comme ça.

Mon résultat.php

<h2>Total Results</h2>

<?php

//table of results
echo "<table border='1'>
  <tr><th>Question</th><th>Your answer</th><th>Correct answer</th><th>Points</th></tr>
  <tr><td>Question#1</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#2</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#3</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#4</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#5</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><th>Total Points</th></tr>
  </table>";

?>
<br>
<a href="p05_main.php">Back to homepage</a>

Les valeurs de la table sont juste là temporairement car cela me fait mieux réfléchir. Je suis désolé si cela confond quelqu'un!

Encore une fois, l'aide est grandement appréciée!

Author: user1344705, 2012-04-21

1 answers

Qu'en est-il de l'utilisation de la fonction PHP fwrite() pour écrire les données du quiz dans le(s) fichier (s), puis rappeler les données sur vos résultats.page(s) php avec fopen() et/ou fonctions associées: feof(), fgets/fgetcsv(), etc.

 0
Author: Joshua, 2012-04-21 01:47:02