Uso de PHP Sessions en un cuestionario

He hecho una prueba de sí/no en la que el juego intenta adivinar en qué criatura estás pensando en función de estas preguntas, solo hay 16 respuestas posibles.

Lo que estoy tratando de hacer es que si el usuario cierra el sitio a la mitad de la prueba, cuando regrese a la prueba, volverá a la misma pregunta que dejó. A continuación se muestra lo que he hecho hasta ahora, pero no funciona correctamente (compruébelo usted mismo en http://s504518.brunelweb.net/Creatures.php) Debe responder sí a la primera pregunta y luego cerrar el navegador ya que hasta ahora solo he realizado una sesión para esa pregunta. Aquí está parte de lo que he hecho hasta ahora

//These are used for saving the session
 $q2 = "<div class='questions'><p>{$questions[0][0]}</p></div>";
 $q3 = "<div class='questions'><p>{$questions[0][1]}</p></div>";

 $f2 = "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='answer1' value='Yes' class='buttons' />
     <input type='submit' name='answer1' value='No' class='buttons' />
     </form></div>";
 $f3 = "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='answer2' value='Yes' class='buttons' />
     <input type='submit' name='answer2' value='No' class='buttons' />
     </form></div>";

//If start button has not been pressed, display nothing
if (!isset($_POST['start'])){

} //If start button has been pressed, display questions
else
{
//Display the first question
echo $firstquestion;
     echo "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='yes1' value='Yes' class='buttons' />
     <input type='submit' name='no1' value='No' class='buttons' />
     </form></div>";
}
//Question 2
if (isset($_SESSION['form']))
{
echo $_SESSION['question'];
echo $_SESSION['form'];
}
else{
if ($_GET['yes1']) //If answer to Q1 is yes then display this
{
echo "<div class='questions'><p>{$questions[0][0]}</p></div>";
showquestion(1);
$_SESSION['question'] = $q2;
$_SESSION['form'] = $f2;
}
}

Lo que estoy tratando de lograr aquí es que, si ya se ha establecido una sesión, muestre la pregunta y el formulario de esa sesión y, si no, no muestre nada hasta que haga clic en el botón de inicio. No estoy seguro de por qué no funciona correctamente y cualquier ayuda sería muy apreciada.

preguntado el 12 de junio de 12 a las 21:06

Una sesión se destruye cuando cierra el sitio web. Considere el uso de cookies. php.about.com/od/advancedphp/qt/php_cookie.htm -

Sé que se puede hacer como lo he visto hacer antes, ve a pbambridge.brunelweb.net/aw/expert.php -

¿Estás seguro de que está usando una sesión? -

No, sé que se puede hacer, solo digo que intente usar cookies en lugar de $_SESSION w3schools.com/php/php_cookies.asp -

NECESITO usar sesiones de PHP porque necesito demostrar que sé cómo usarlas (lo que no sé... del todo) y no estoy seguro de que haya usado sesiones, pero dijo que sí y le creo. , él no me diría que lo hiciera si él mismo lo hiciera de una manera diferente. -

1 Respuestas

Debe crear una sesión con session_start (), poner esto en la primera línea de php:

session_start();

Como me dice php.net, también usará sesiones ya generadas. Solo asegúrese de no tener salida html antes de comenzar la sesión

Respondido el 12 de junio de 12 a las 21:06

Oh, maldita sea, estoy demasiado cansado para leer ... Use session_name ("cuestionario") antes de session_start para crear y recuperar la sesión especificada - Nurickán

Lo hice y casi funciona ahora, pero en lugar de que la pregunta guardada cambie a la siguiente, simplemente permanece allí y la siguiente pregunta aparece debajo. - Harry12345

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.