Hallo,
ich habe hier eine Seite:
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:
Und hier sind die Codes:
Quizfrage des Tages:
[code]
<?php @mysql_connect("Server", "Benutzername", "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(&$id, &$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); $id = $row['id']; $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()); $result = true; } else { // Alle Fragen durch, Datum resetten resetDate(); $result = getQuestion($id, $question, $antwortr,$antwortf1,$antwortf2,$antwortf3); } } return $result; } $result = getQuestion($id, $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 ($id,$antwortf1,$antwortf2,$antwortf3); if ($result === true) { echo ""; echo ""; echo " $antworten_qft[1]
"; echo " $antworten_qft[2]
"; echo " $antworten_qft[3]
"; echo ""; echo "
"; echo "
Zufalls-Quizfrage:
[code]<?php
@mysql_connect(“Server”, “Benutzer”, “Passwort”) or
die (“Fehler beim Connect”);
@mysql_select_db("Datenbank") or
die ("Datenbank nicht vorhanden");
function getQuestion(&$question,&$antwortr,&$antwortf1,&$antwortf2,&$antwortf3)
{
// Zufallsfrage ermitteln
$query = “Select
question,
antwortr,
antwortf1,
antwortf2,
antwortf3
from
quizfrage
order by rand()”;
$result = mysql_query($query) or
die ("MySQL-Fehler: " . mysql_error());
$row = mysql_fetch_array($result);
$question = $row['question'];
$antwortr = $row['antwortr'];
$antwortf1 = $row['antwortf1'];
$antwortf2 = $row['antwortf2'];
$antwortf3 = $row['antwortf3'];
$result = true;
return $result;
}
$result = getQuestion($question,$antwortr,$antwortf1,$antwortf2,$antwortf3);
$antworten = array ($antwortr,$antwortf1,$antwortf2,$antwortf3);
shuffle($antworten);
unset ($antwortf1,$antwortf2,$antwortf3);
if ($result === true) {
echo “”;
echo “
echo “$question”;
echo “
echo " $antworten[0]
";
echo " $antworten[1]
";
echo " $antworten[2]
";
echo " $antworten[3]
";
echo “”;
echo “
”;
echo “
echo “Zufalls-Quizfrage - powered by www.raetselstunde.de”;
echo “
echo “”;
}
else
echo “Mist, da ist was schiefgelaufen.”;
if(isset($_POST[‘antwort’]))
{
$antwortalt=$_SESSION[‘antwortalt’];
$eingabe=$_POST[antwort];
if ($eingabe === $antwortalt) echo ’'; else echo ’';
}
$_SESSION[‘antwortalt’]=$antwortr;
?> [/code]
Kann der Fehler vielleicht daher kommen, dass beide Skripte die gleiche Datenbank nutzen?