Hallo,
ich habe hier eine Seite:
http://www.raetselstunde.de/quizfrage-des-tages.html
auf der ich 2 Skripte zum Einbinden anbiete. Jedes Skript für sich allein funktioniert einwandfrei. Nur wenn ich die beiden zusammen auf einer Seite einbinde, kommt es zu folgendem Fehler:
Beim allerersten Aufruf, d. h. wenn die Seite zum ersten Mal geladen wird und ich auf eine Antwort klicke, fehlt im erscheinenden Alert die Lösung und es fehlen die Antworten. Wenn ich einen Reload der Seite mache funktioniert es so wie es soll. Da es ein bisschen schwierig zu erklären ist, hier mal ein Screenshot:
[Blockierte Grafik: http://wishuload.de/images/thumbs/1222412112-87643quizfrage.jpg]
Und hier sind die Codes:
Quizfrage des Tages:
<?php
@mysql_connect("Server", "Benutzer", "Passwort") or
die ("Fehler beim Connect");
@mysql_select_db("Datenbank") or
die ("Datenbank nicht vorhanden");
function resetDate()
{
$query = "Update
quizfrage
set
datum='0000-00-00'";
mysql_query($query) or
die ("MySQL-Fehler: " . mysql_error());
}
function getQuestion(&$question, &$antwortr, &$antwortf1, &$antwortf2, &$antwortf3)
{
$result = false;
// Frage des Tages schon mal ermittelt?
$query = "Select
id,
question,
antwortr,
antwortf1,
antwortf2,
antwortf3
from
quizfrage
where
datum=curdate()";
$result = mysql_query($query) or
die ("MySQL-Fehler: " . mysql_error());
if (mysql_num_rows($result))
{
$row = mysql_fetch_array($result);
$question = $row['question'];
$antwortr = $row['antwortr'];
$antwortf1 = $row['antwortf1'];
$antwortf2 = $row['antwortf2'];
$antwortf3 = $row['antwortf3'];
$result = true;
}
else
{
// Es wurde noch keine Frage des Tages ermittelt
$query = "Select
id,
question,
antwortr,
antwortf1,
antwortf2,
antwortf3
from
quizfrage
where
datum='0000-00-00'
order by rand()";
$result = mysql_query($query) or
die ("MySQL-Fehler: " . mysql_error());
if (mysql_num_rows($result))
{
$row = mysql_fetch_array($result);
$id = $row['id'];
$question = $row['question'];
$antwortr = $row['antwortr'];
$antwortf1 = $row['antwortf1'];
$antwortf2 = $row['antwortf2'];
$antwortf3 = $row['antwortf3'];
$result = true;
// Die Frage haben wir, jetzt Datum aktualisieren
$query = "Update
quizfrage
set
datum=curdate()
where
id = $id";
mysql_query($query) or
die ("MySQL-Fehler: " . mysql_error());
unset ($id);
$result = true;
}
else
{
// Alle Fragen durch, Datum resetten
resetDate();
$result = getQuestion($question, $antwortr,$antwortf1,$antwortf2,$antwortf3);
}
}
return $result;
}
$result = getQuestion($question, $antwortok, $antwortf1, $antwortf2, $antwortf3);
if(!isset($_POST['senden'])){
$antworten_qft = array ($antwortok,$antwortf1,$antwortf2,$antwortf3);
shuffle ($antworten_qft);
$_SESSION['antworten_qft[0]']=$antworten_qft[0];
$_SESSION['antworten_qft[1]']=$antworten_qft[1];
$_SESSION['antworten_qft[2]']=$antworten_qft[2];
$_SESSION['antworten_qft[3]']=$antworten_qft[3];
$_SESSION['question']=$question;
$_SESSION['antwortok']=$antwortok;
}
else
{
$antworten_qft = array ($_SESSION['antworten_qft[0]'],$_SESSION['antworten_qft[1]'],$_SESSION['antworten_qft[2]'],$_SESSION['antworten_qft[3]']);
$antwortok=$_SESSION['antwortok'];
$question=$_SESSION['question'];
}
unset ($antwortf1,$antwortf2,$antwortf3);
if ($result === true) {
echo "<form method='post' action='quizfrage.html'>";
echo "<div style='text-align:center'>";
echo "$question";
echo "<div style='margin-left:auto; margin-right:auto; text-align:left; width:200px'>";
echo "<input type='radio' name='antwort' value='$antworten_qft[0]' /> $antworten_qft[0]<br />";
echo "<input type='radio' name='antwort' value='$antworten_qft[1]' /> $antworten_qft[1]<br />";
echo "<input type='radio' name='antwort' value='$antworten_qft[2]' /> $antworten_qft[2]<br />";
echo "<input type='radio' name='antwort' value='$antworten_qft[3]' /> $antworten_qft[3]<br />";
echo "<input type='submit' name='senden' value='Prüfen' />";
echo "<br />";
echo "</div>";
echo "Quizfrage des Tages - powered by <a target='_blank' href='http://www.raetselstunde.de'>www.raetselstunde.de</a>";
echo "</div>";
echo "</form>";
}
else
echo "Mist, da ist was schiefgelaufen.";
if(isset($_POST['antwort']))
{
$eingabe=$_POST[antwort];
if ($eingabe === $antwortok) echo '<script type="text/javascript"> alert("Sehr gut, das war die richtige Antwort."); </script>'; else echo '<script type="text/javascript"> alert("Leider falsch. ' . $antwortok . ' wäre richtig gewesen."); </script>';
}
?>
Alles anzeigen
Zufalls-Quizfrage:
<?php
@mysql_connect("Server", "Benutzer", "Passwort") or
die ("Fehler beim Connect");
@mysql_select_db("Datenbank") or
die ("Datenbank nicht vorhanden");
function getQuestionz(&$questionz,&$antwortzr,&$antwortzf1,&$antwortzf2,&$antwortzf3)
{
// Zufallsfrage ermitteln
$queryz = "Select
question,
antwortr,
antwortf1,
antwortf2,
antwortf3
from
quizfrage
order by rand()";
$resultz = mysql_query($queryz) or
die ("MySQL-Fehler: " . mysql_error());
$rowz = mysql_fetch_array($resultz);
$questionz = $rowz['question'];
$antwortzr = $rowz['antwortr'];
$antwortzf1 = $rowz['antwortf1'];
$antwortzf2 = $rowz['antwortf2'];
$antwortzf3 = $rowz['antwortf3'];
$resultz = true;
return $resultz;
}
$resultz = getQuestionz($questionz,$antwortzr,$antwortzf1,$antwortzf2,$antwortzf3);
$antwortenz = array ($antwortzr,$antwortzf1,$antwortzf2,$antwortzf3);
shuffle($antwortenz);
unset ($antwortzf1,$antwortzf2,$antwortzf3);
if ($resultz === true) {
echo "<form method='post' action='quizfrage-zufall.html'>";
echo "<div style='margin-left:auto; margin-right:auto;width:400px'>";
echo "$questionz";
echo "<div style='margin-left:auto; margin-right:auto; text-align:left; width:200px'>";
echo "<input type='radio' name='antwortz' value='$antwortenz[0]' /> $antwortenz[0]<br />";
echo "<input type='radio' name='antwortz' value='$antwortenz[1]' /> $antwortenz[1]<br />";
echo "<input type='radio' name='antwortz' value='$antwortenz[2]' /> $antwortenz[2]<br />";
echo "<input type='radio' name='antwortz' value='$antwortenz[3]' /> $antwortenz[3]<br />";
echo "<input type='submit' name='sendenz' value='Prüfen' />";
echo "<br />";
echo "</div>";
echo "Zufalls-Quizfrage - powered by <a target='_blank' href='http://www.raetselstunde.de'>www.raetselstunde.de</a>";
echo "</div>";
echo "</form>";
}
else
echo "Mist, da ist was schiefgelaufen.";
if(isset($_POST['antwortz']))
{
$antwortalt=$_SESSION['antwortalt'];
$eingabez=$_POST[antwortz];
if ($eingabez === $antwortalt) echo '<script type="text/javascript"> alert("Sehr gut, das war die richtige Antwort."); </script>'; else echo '<script type="text/javascript"> alert("Leider falsch. ' . $antwortalt . ' wäre richtig gewesen."); </script>';
}
$_SESSION['antwortalt']=$antwortzr;
?>
Alles anzeigen
Hat jemand eine Idee, wo der Fehler liegen könnte?