wir haben in der Schule ein Momory programiert. Das Programm läuft in der Schule einwandfrei. Nun wollte ich zu Hause selbst noch daran arbeiten und auch so PHP nutzen. Also habe ich den Xampp runtergeladen und installiert. Soweit so gut.
Wenn ich das Programm starte zeigt er mir 32 Bilder(als images) an die anschließend umgedreht werden und in ein Inputfeld des Typs Image verwandelt werden. Wenn ich nun auf ein Bild klicke wird die Seite neu geladen aber er dreht keines der Bilder um.
Ich habe mit meine Lehrer versucht die Ursache zu finden und wir sind zu dem Entschluss gekommen, das er ein Problem mit isset() in Verbindung mit der Erzeugung eines Arrays aus den image-namen hat.
Ich nutze PHP 5.1.1.
Gibt es Einstellungen die beachtet werden müssen? Bitte helft mir!
Hier mal der Quelltext:
- Code: Select all
<?php
session_start();
?>
<html>
<form name="MEMORY" method="post" action="memory.php">
<?php
$insgesamt=$_SESSION["Insgesamt"];
$fehler=$_SESSION["Fehler"];
$ende=$_SESSION["Ende"];
$bild=array("eisen","bus","pkw","lkw","faehre","frachter","segel","uboot","heiss","passagie","segelf","hub","rakete","satellit","shuttle","rstation","leer");
function verdecke()
{
$v=array_fill(0,32,1);
return $v;
}
if($_POST["bverdecken"]!="")
{
$verdeckt=verdecke();
$zaehler=-1;
$geprueft=0;
}
else{
if ($_POST["bneu"]=="")
{
$verdeckt=$_SESSION["umdrehen"];
$zaehler=$_SESSION["Klickzaehler"];
$geprueft=$_SESSION["geprueft"];
}
}
if($_POST["bumdrehen"]!="")
{
$verdeckt[$zaehler]=1;
$verdeckt[$_SESSION["bild2"]]=1;
$zaehler=-1;
$geprueft=0;
}
function wuerfeln()
{
for($j=0;$j<32;$j++)
{
$k[$j]=1;
}//for
srand((double)microtime()*1000000);
for($j=0;$j<32;$j++)
{
$dummy=rand(0,31);
if ($k[$dummy]==1)
{ $k[$dummy]=0;
$i[$j]=$dummy;
}//if
else {$j--;}
}//for
return $i;
}//function
if(($_POST["bneu"]!="")||(empty($_POST)))
{
$i=wuerfeln();
$zaehler=-1;
$insgesamt=0;
$fehler=0;
$ende=0;
}
else
{
$i=$_SESSION["Feld"];
}
//prüfen ob 2 gleiche Bilder
for($j=0;$j<32;$j++)
{
if(isset($b[$j])) //fragt ob Bild angeklickt
{
echo "Es ist auf das Bild mit der Nummer ".$j." geklickt worden.";
if($geprueft==0)
{
$geprueft=1;
if($zaehler==-1)
{
$zaehler=$j;
$verdeckt[$j]=0;
}
}
else
{
if($zaehler!=$j)
$insgesamt++;
{
$verdeckt[$j]=0;
if($bild[$zaehler/2]==$bild[$j/2])
{
$zaehler=-1;
$geprueft=0;
$ende++;
}
else
{
$_SESSION["bild2"]=$j;
$fehler++;
$ausgabe='Bilder passen nicht! <input type="submit" value="umdrehen" name="bumdrehen"></input>';
}
}
}
}
}
If($ende==16)
{
$meldung='Herzlichen Glückwunsch! Sie haben alle Paare entdeckt.';
}
?>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<div align="center">
<table>
<?php
for($j=0;$j<8;$j++)
{
?>
<tr>
<td><?php if($verdeckt[$i[4*$j]]==1){echo '<input type="image" name="b['.$i[4*$j].'][]" src="images/'.$bild[16].'.gif"></input>';}else{echo '<img src="images/'.$bild[$i[4*$j]/2].'.gif">';}?></td>
<td width="30"></td>
<td><?php if($verdeckt[$i[4*$j+1]]==1){echo '<input type="image" name="b['.$i[4*$j+1].'][]" src="images/'.$bild[16].'.gif"></input>';}else{echo '<img src="images/'.$bild[$i[4*$j+1]/2].'.gif">';}?></td>
<td width="30"></td>
<td><?php if($verdeckt[$i[4*$j+2]]==1){echo '<input type="image" name="b['.$i[4*$j+2].'][]" src="images/'.$bild[16].'.gif"></input>';}else{echo '<img src="images/'.$bild[$i[4*$j+2]/2].'.gif">';}?></td>
<td width="30"></td>
<td><?php if($verdeckt[$i[4*$j+3]]==1){echo '<input type="image" name="b['.$i[4*$j+3].'][]" src="images/'.$bild[16].'.gif"></input>';}else{echo '<img src="images/'.$bild[$i[4*$j+3]/2].'.gif">';}?></td>
</tr>
<tr height="15">
<td colspan="7"></td>
</tr>
<?php
}
?>
</table>
<input type="submit" value="neues Spiel" name="bneu"></input>
<input type="submit" value="verdecken" name="bverdecken"></input>
</div>
<?php
echo $ausgabe;
$ausgaben="";
echo '<br> Versuche: '. $insgesamt;
echo '<br> Fehler: '. $fehler;
echo '<br>'. $meldung;
$_SESSION["Feld"]=$i;
$_SESSION["umdrehen"]=$verdeckt;
$_SESSION["Klickzaehler"]=$zaehler;
$_SESSION["geprueft"]=$geprueft;
$_SESSION["Insgesamt"]=$insgesamt;
$_SESSION["Fehler"]=$fehler;
$_SESSION["Ende"]=$ende;
?>
</form>
</body>
</html>