mit session_start geht if nicht mehr!

Alles, was PHP betrifft, kann hier besprochen werden.

mit session_start geht if nicht mehr!

Postby Enzian » 13. March 2004 23:14

Hallo

Mache ein Quiz, mit X Fragen. Wenn Antwort richtig, kommt richtig, wenn falsch eben falsch. Nun möchte ich die Resultate in Session speichern. Doch ich stecke schon am Anfang fest.

Ohne *session_start* ist der Output richtig. Sobald ich nur schon session_start einsetze, sind alle Fragen immer falsch. Was mache ich falsch?

Danke
:roll:
<?php
session_start();
require("../lib/header_qv.php3");

if(isset ($Submit))
{
$query = "SELECT * FROM Quiz
WHERE id_quiz='$id_quiz'";
$result = mysql_query($query,$link);
$row = mysql_fetch_array($result);

if($richtig==$row[richtig])
{
echo"richtig <a href='3.php'>weiter</a></a>";
}

elseif($richtig!=$row[richtig])
{echo"falsch! <a href='3.php'>weiter</a>";
}

}
else
{
Enzian
 
Posts: 26
Joined: 10. March 2004 23:45

Postby Wiedmann » 14. March 2004 00:22

Fehlt da nicht der Code wo die Daten in die $_SESSION - Variable geschrieben und wieder ausgelesen werden?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

ja, aber es geht auch dann nicht

Postby Enzian » 14. March 2004 00:32

Der Code fehlt noch, das weiss ich. Aber weshalb kommt flasch, obwophl richtig, wenn session_start drin ist, und wenn nicht geht alles?
Enzian
 
Posts: 26
Joined: 10. March 2004 23:45

Postby Stefan » 14. March 2004 08:47

Morschen,

na es geht nicht, da ein Fehler eingebaut ist. Leider verschweigst Du, was in "header_qv.php3" steht, wahrscheinlich ist er dort zu finden.

Wenns interessiert, eine gangbare Version Deines Scriptes:

AntwortCheck.php
Code: Select all
<?php
$beantwortet = false;     // Frage beantwortet? -- Kontrollvariable

if(isset($_POST['Submit']))
{
  $beantwortet = true;   // Frage beantwortet!

  $query  = "
    SELECT
      `Frage`,
      `Antwort`
    FROM
      `Quiz`
    WHERE
      `id_quiz` = '".$_POST['id_quiz']."'
    AND
      `Antwort` = '".$_POST['Antwort']."'
  ";

  $result = mysql_query($query,$link);

  if(mysql_num_rows($result) == 1)
    $Ergebnis = 'richtig';                    // Treffer = richtige Antwort
  else
    $Ergebnis = 'falsch';                     // Keine Übereinstimmung = falsche Antwort

  mysql_free_result($result);                 // raus aus dem Speicher

  $_SESSION['Quiz']['Frage-'.$_POST['id_quiz']] = $Ergebnis;   // speichere das Ergebnis in der Session

}// ENDE __ if(isset($_POST['Submit']))
?>


Seite1
Code: Select all
<?php
error_reporting(E_ALL);
session_start();
include('AntwortCheck.inc.php');
?>

<!-- doctype / html / head ... -->

<!-- Frage beantwortet, schreibe Ergebnis und Link -->
<?php
if($beantwortet == true)
  echo "<strong>".$Ergebnis."</strong> <a href='2.php'>weiter</a>";
?>

<!-- weiteres HTML -->

<!-- Frage nicht beantwortet, schreibe Formular -->
<?php if($beantwortet == false): ?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="Post">
<input type="hidden" name="id_quiz" value="1">
Name?:
<br>
<input type="radio" name="Antwort" value="Peter"> Peter
<br>
<input type="radio" name="Antwort" value="Lustig"> Lustig
<br>
<input type="submit" name="Submit">
</form>

<?php endif; ?>

<!--  weiteres HTML -->


Formular auf Seite 2
Code: Select all
<form action="<?=$_SERVER['PHP_SELF']?>" method="Post">
<input type="hidden" name="id_quiz" value="2">
Ort?:
<br>
<input type="radio" name="Antwort" value="hamburg"> Hamburg
<br>
<input type="radio" name="Antwort" value="passau"> Passau
<br>
<input type="submit" name="Submit">
</form>


Seite 3 Ausgabe:
Code: Select all
<?php
// Ausgabe
echo "<pre>";
print_r($_SESSION['Quiz']);
echo "</pre>";
?>


Funktioniert soweit einwandfrei, allerdings müsste es natürlich noch um ein paar Kontrollmechanismen erweitert werden.

Gruß
Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Danke

Postby Enzian » 14. March 2004 13:26

Danke, jetzt bin ich schon viel weiter. Trotzdem stecke ich wieder, aber das schreibe ich in eine neue Frage

Danke
Enzian
 
Posts: 26
Joined: 10. March 2004 23:45


Return to PHP

Who is online

Users browsing this forum: No registered users and 57 guests