es ist mal wieder soweit, ich beiße gleich in die Tischkante.
Die letzte Woche habe ich damit zugebracht verschiedene Varianten für ein Memory zu testen.
a) Bilder aus Zufallsgenerator als Link und Variable mit GET übergeben
b) Bilder aus Zufallsgenerator als input-type mit POST
c) Bilder aus Zufallsgenerator in Formular mit Radiobuttons.
Bei der dritten Variante war ich nun "fast" erfolgreich. Das Script funktioniert, was die Auswahl, die Überprüfung der Bilder, ob man ein Pärchen gefunden hat, die Überprüfung der Versuche usw. betrifft.
Das einzige, was ich nicht schaffe, ist die zwei ausgwählten Bilder anzeigen zu lassen
Hier das Script:
- Code: Select all
<?php
error_reporting(E_ALL);
include("../connect.php");
if(!$verbindung OR !mysql_select_db("homepage"))
{
$error = "Die Seite konnte leider nicht korrekt aufgebaut werden. Sollte dieser Fehler nochmals auftreten sende
mir bitte eine E-Mail:
<br>
<br><a href=\"mailto:mail@potionmaster.de\">mail@potionmaster.de</a>";
}
else
{
$abfrage = "SELECT DATE_FORMAT(datum2, '%d.%m.%Y') AS datum2, spiele.memory, spiele.frosch FROM spiele WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$datum = date("d.m.Y");
if($row->datum2 < $datum)
{
$aendern = "UPDATE spiele Set memory=0 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
}
if (empty($_POST["gesendet"]))
{
$output="";
}
else
{
if($row->memory == 3 AND $row->datum2 == $datum)
{
$error ="Du hattest schon 3 Versuche und kannst erst Morgen wieder mitspielen.
<br>
<br><a href=\"schokofroesche.php\">Zurück</a>";
}
else if($row->frosch == 1 AND $row->datum2 == $datum)
{
$error ="Du hast heute schon gewonnen und kannst erst Morgen wieder mitspielen.
<br>
<br><a href=\"schokofroesche.php\">Zurück</a>";
}
else
{
$tstamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$datum = date("Y-m-d", $tstamp);
$aendern = "UPDATE spiele Set memory=memory+1, datum2='" . mysql_real_escape_string($datum) . "'
WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
if($_POST["oben"] == $_POST["unten"])
{
$foto = array();
$ordner = "../schokofroesche1";
$handleordner=opendir ($ordner);
while (false != ($file = readdir ($handleordner)))
{
if ($file != "." && $file != "..")
{
array_push($foto,"$file");
}
}
closedir($handleordner);
shuffle($foto);
$output = '<img src="../schokofroesche1/'.htmlspecialchars($foto[0]).' " alt="">
<br>
<br>Glückwunsch, Du hast gewonnen und erhältst 1 Schokofrosch.';
$eintrag = "INSERT INTO schokofrosch (benutzername, klassik)
VALUES ('" . mysql_real_escape_string($_SESSION["username"]) . "', '" . mysql_real_escape_string($foto[0]) . "')";
$eintragen = mysql_query($eintrag);
$aendern = "UPDATE spiele Set frosch=1 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
}
else
{
$error = "Es tut mir leid. Du hast leider nicht gewonnen.";
}
mysql_close($verbindung);
// schließen der noch offenen else-Befehle
}
}
}
?>
<h1>Memory</h1>
<br>
<img src=".gif" alt="">
<br>
<p>Wähle aus den verdeckten Karten 2 aus. Jeweils eine aus der oberen und eine aus der unteren Reihe. Sind Deine Karten
identisch erhältst Du einen Schokofrosch. Aber wähle mit Bedacht, denn Du hast nur 3 Versuche, um ein Pärchen zu finden.
<br>
<br>
<form action="zeit.php" method="POST">
<?php
$foto = array();
$ordner = "../herrenhaus/memory";
$handleordner=opendir ($ordner);
while (false != ($file = readdir ($handleordner)))
{
if ($file != "." && $file != "..")
{
array_push($foto,"$file");
}
}
closedir($handleordner);
shuffle($foto);
echo '<img src="../herrenhaus/memory/'.htmlspecialchars($foto[0]).' " alt=""><input type="radio" name="oben" value=" '.htmlspecialchars($foto[0]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[1]).' " alt=""><input type="radio" name="oben" value=" '.htmlspecialchars($foto[1]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[2]).' " alt=""><input type="radio" name="oben" value=" '.htmlspecialchars($foto[2]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[3]).' " alt=""><input type="radio" name="oben" value=" '.htmlspecialchars($foto[3]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[4]).' " alt=""><input type="radio" name="oben" value=" '.htmlspecialchars($foto[4]).' "><br><br>';
$foto = array();
$ordner = "../herrenhaus/memory";
$handleordner=opendir ($ordner);
while (false != ($file = readdir ($handleordner)))
{
if ($file != "." && $file != "..")
{
array_push($foto,"$file");
}
}
closedir($handleordner);
shuffle($foto);
echo '<img src="../herrenhaus/memory/'.htmlspecialchars($foto[0]).' " alt=""><input type="radio" name="unten" value=" '.htmlspecialchars($foto[0]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[1]).' " alt=""><input type="radio" name="unten" value=" '.htmlspecialchars($foto[1]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[2]).' " alt=""><input type="radio" name="unten" value=" '.htmlspecialchars($foto[2]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[3]).' " alt=""><input type="radio" name="unten" value=" '.htmlspecialchars($foto[3]).' ">
<img src="../herrenhaus/memory/'.htmlspecialchars($foto[4]).' " alt=""><input type="radio" name="unten" value=" '.htmlspecialchars($foto[4]).' ">';
?>
<br>
<input type="submit" value="Raten">
<input type="hidden" name="gesendet" value="1">
</form></p>
<br>
<br>
// hier der Problem-Teil
<?php
echo '<img src="../herrenhaus/memory/'.htmlspecialchars($_POST["oben"]).' " alt=""><img src="../herrenhaus/memory/'.htmlspecialchars($_POST["unten"]).' " alt="">';
?>
// Ende Problem-Teil, alles andere klappt
<br>
<br>
<?php
if (!empty($error))
{
echo '<div class="error"><p>'.$error.'</p></div>';
}
else
{
echo $output;
}
?>
Ich habe schon geprüft, ob die zwei POST-Variablen leer sind. Sind sie nicht, wenn ich an der gleichen Stelle nur
- Code: Select all
echo $_POST["oben"], $_POST["unten"];
schreibe, gibt er mir die Werte der zwei Bilder aus, also z.B. wesen01.gif und wesen04.gif.
Habe auch schon daran gedacht, es könnte an den Variablen selber liegen, wegen dem Unterstrich ($_POST). Darum habe ich die POST-Variablen nochmal zwischengespeichert. Allerdings wird mit "normalen" Variablen auch nichts angezeigt und es kommt in keinem Fall zu einer Fehlermeldung oder Warnung.
Über google habe ich zwar sehr viel zu Problemen zum Thema "input type img" gefunden, aber leider nichts zu meinem momentanen Problem. Sollte ich was überlesen haben, bitte sendet mir den Link dazu.
Grüße
Poison