Maxi: Sessions: Textdaten Übertragungsproblem

Beitrag lesen

Hallo liebe SelfHTML-Gemeinde,

dank der regen Hilfe in diesem Forum habe ich mich inzwischen ein wenig mit Sessions in PHP auseinandergesetzt und mein kleines Quizspiel komplett umgebaut. Allerdings gibt es (mal wieder) ein Problem...

Es wäre super lieb, wenn Ihr mir noch einmal helfen könntet ;)

Problem:
-----------------------
Die Punkte werden von Session zu Session korrekt übermittelt und auch auf dem Server gespeichert. Der Teilnehmername (wohl jede Art von Textvariable) geht immer wieder verloren. Ich vermute also mal, dass man bei Sessions etwas anders einrichten muss, je nachdem ob man Zahlen-Variablen (wie die Punktzahl) oder Text-Variablen (wie Namen) speichert.

Aufbau meines Scripts:
------------------------
Ich habe ein PHP-Hauptdokument welches immer wieder aufgerufen wird und dabei wiederum immer wieder Textdateien mit den Quizfragen aufruft. Momentan übermitteln die Textdateien per hidden Formularfeld immer die nächste Seite, die dann im PHP-Dokument weiterverarbeitet wird.
Das PHP-Script ruft Seite 199.txt (Startseite mit Namenseingabe) auf, wenn keine andere Angabe vorhanden ist. Anschließend geht es mit Seite 200.txt (Frage 1) weiter. Danach geht es zu Seite 201.txt (Frage 2). Testweise folgt danach wieder Seite 200.txt (Frage 1).

Die Punktezählung und der Aufruf der Seiten erfolgt problemlos. Nur der Name wird nicht von Session zu Session übergeben :(

Meine PHP-Datei:
------------------------
<?php // Quizspiel
session_start();
session_register('Punkte');
session_register('Teilnehmer');
$Punkte = $_SESSION['Punkte'];
$Teilnehmer = $_SESSION['Teilnehmer'];

// TEST, ob Startseite notwendig
if ($seite <=0)
{
$seite = "199";
}

// TEST, ob Frage richtig war
if ($Frage == "Richtig")
{
$Punkte = $Punkte +1;
}

?>
<html>
<body>

<? echo $Teilnehmer; ?> (Punkte: <? echo $Punkte; ?>)<hr/>

<form name="QuizFormular" action="<?=$PHP_SELF."?".$SID?>" method="post">
<?php include("$seite.txt"); ?>
</form><hr/>

<?
echo "Dies ist Seite: $seite";
echo"Ihr Name ist: $Teilnehmer";
?></div>

</body>
</html>

Meine txt-Startseite (Namenseingabe):
------------------------------------------------
Bitte gebe deinen Namen ein::<br/><br/>

<input style="margin-left:20px;" type="Text" name="Teilnehmer" value="" size="50" maxlength="20" /></div>

<input type="hidden" name="seite" value="200" />
<input type="Submit" name="" value="Fertig!" />

Meine txt-Quizseite 1:
------------------------------------------------
<script type="text/javascript">
  function Zack () {
  document.QuizFormular.submit();
  }
  </script>

Was ist größer?<br/><br/></div>

<input type="radio" name="Frage" value="Richtig" onClick="Zack()"> Orange </input><br/>
  <input type="radio" name="Frage" value="Falsch" onClick="Zack()"> Ei </input><br/>

<input type="hidden" name="seite" value="201" />
</div>

Meine txt-Quizseite 2:
------------------------------------------------
<script type="text/javascript">
  function Zack () {
  document.QuizFormular.submit();
  }
  </script>

Was ist größer?<br/><br/></div>

<input type="radio" name="Frage" value="Falsch" onClick="Zack()"> Ameise </input><br/>
  <input type="radio" name="Frage" value="Richtig" onClick="Zack()"> Wal </input><br/>

<input type="hidden" name="seite" value="200" />
</div>