Hilfe bei Fehlersuche in einer simplen php-Datei

freaking out

Grünschnabel
HI!
Also, da ich hier in diesem Forum schon sehr gute Erfahrungen gemacht habe hoffe ich, dass mir vielleicht auch bei diesem Problem geholfen wird...
Ich habe nun ebdlich den Code für diese php-datei fertig geschriebn... allerdings funktioniert sie nicht ganz so wie sie soll...
meistens: beim ersten mal formular ausfüllen wird überprüft ob die eingabe und der inhalt der txt-datei gleich sind bei korrekter eingabe wird im Formular schon nach einem neuen neuen Wort gefragt während darüber steht ob die vorhergegangene Eingabe richtig (anzeige: richtig! und korrektes Vokabel: Deutsch - Spanisch bzw. umgekehrt... je nach 'abfragemodus'), oder falsch (anzeige: falsch! und eingegebenes Vokabel: 'Eingegebenes Deutsch' - Spanisch bzw. umgekehrt... je nach 'abfragemodus' und darunter die korrekten Vokabel)...
beim erneuten übermitteln der Formulardaten bzw. beim erhalten (ich denke hier in der gegend wird mein fehler liegn) wird nichtmehr angezeigt ob falsch oder richtig...

also hier mal der Code:
PHP:
<HTML>
<HEAD>
<TITLE>Spanisch Vokabel Trainer</TITLE>
<LINK rel="stylesheet" type="text/css" href="style.css">
</HEAD>
<BODY>
<DIV ALIGN="center">
<H1>Vokabel Abfragen</H1></DIV><BR>
<DIV align="right"><A HREF="index.php"><FONT color="#00CC00">HOME</FONT></A></DIV><BR>
<DIV align="left">
<TABLE border="0">
<TR>
<TD align="left" valign="center">
	Momentaner Abfrage-Modus:
</TD>
 
<?php
$lang=$HTTP_GET_VARS["lang"];
$lastrand=$HTTP_POST_VARS["rand"];
$lastdvoc=$HTTP_POST_VARS["dvoc"];
$lastsvoc=$HTTP_POST_VARS["svoc"];
 
$filename = "files.txt";
$datei = fopen( $filename, "r" );
$inhalt = fread( $datei, filesize( $filename ) );
$files = $inhalt;
fclose( $datei );
 
srand(microtime()*1000000);
$rand = rand(1, $files);
 
if($lang=="de")
{
echo "<TD align=\"left\" valign=\"center\"><FONT color=\"AADD00\">Abfrage von <U><I>Deutsch</I></U> nach <U><I>Spanisch</I></U>.</FONT></TD></TR><TR><TD align=\"right\" valign=\"center\" colspan=\"2\"><A HREF=\"check.php?lang=sp\"><FONT size=\"-1\">Modus auf <I>Spanisch</I> nach <I>Deutsch</I> setzen.</FONT></A></TD></TR></TABLE>";
echo "<BR><DIV align=\"center\"><BR>";
if($lastrand!="" and $lastdvoc!="" and $lastsvoc!="Vokabel auf Spanisch")
{
$filename3 = "svoc/s";
$filename3.=$lastrand;
$filename3.=".txt";
$datei3 = fopen( $filename3, "r" );
$inhalt3 = fread( $datei3, filesize( $filename3 ) );
$rsvoc=$inhalt3;
fclose( $datei3 );
if($rsvoc == $lastsvoc)
	{
	echo "<B><U>RICHTIG!</U></B><BR>";
	echo $lastdvoc, " - ",$rsvoc, "<BR><BR>";
	}
else
	{
	echo "<B><U>FALSCH!</U></B><BR>";
	echo "Sie sagten: ";
	echo $lastdvoc, " - ",$lastsvoc, "<BR>";
	echo "Richtig wäre gewesen: ";
	echo "<B><I>", $lastdvoc, "</I></B> - <B><I>",$rsvoc, "</I></B><BR><BR>";
	}
}
 
$filename2 = "dvoc/d";
$filename2.=$rand;
$filename2.=".txt";
$datei2 = fopen( $filename2, "r" );
$inhalt2 = fread( $datei2, filesize( $filename2 ) );
$dvoc=$inhalt2;
fclose( $datei2 );
echo "<DIV align=\"center\">";
echo "<FORM action=\"check.php?lang=de\" method=\"post\">";
echo "<TABLE border=\"0\"><TR><TD align=\"left\" valign=\"center\">Deutsch:<BR>",$dvoc;
echo "<INPUT type=\"hidden\" name=\"dvoc\" value=\"$dvoc\">";
echo "</TD><TD align=\"right\" valign=\"center\">Spanisch:<BR><INPUT type=\"text\" size=\"40\" maxlength=\"40\" name=\"svoc\" value=\"Vokabel auf Spanisch\" class=\"feld\" onFocus=\"this.form.svoc.value=''\">";
echo "<INPUT type=\"hidden\" value=\"";
echo $rand;
echo "\" name=\"rand\"></TD></TR>";
echo "<TR><TD colspan=\"2\" align=\"center\" valign=\"center\"><INPUT type=\"submit\" value=\"Überprüfen und nächstes Vokabel abfragen lassen\" class=\"button\"></TD></TR>";
echo "</TABLE></FORM>";
echo "</DIV>";
}
if($lang=="sp")
{
echo "<TD align=\"left\" valign=\"center\"><FONT color=\"AADD00\">Abfrage von <U><I>Spanisch</I></U> nach <U><I>Deutsch</I></U>.</FONT></TD></TR><TR><TD align=\"right\" valign=\"center\" colspan=\"2\"><A HREF=\"check.php?lang=de\"><FONT size=\"-1\">Modus auf <I>Deutsch</I> nach <I>Spanisch</I> setzen.</FONT></A></TD></TR></TABLE>";
echo "<BR><DIV align=\"center\"><BR>";
if($lastrand!="" and $lastdvoc!="" and $lastdvoc!="Vokabel auf Deutsch")
{
$filename4 = "dvoc/d";
$filename4.=$lastrand;
$filename4.=".txt";
$datei4 = fopen( $filename4, "r" );
$inhalt4 = fread( $datei4, filesize( $filename4 ) );
$rdvoc=$inhalt4;
fclose( $datei4 );
if($rdvoc == $lastdvoc)
	{
	echo "<B><U>RICHTIG!</U></B><BR>";
	echo $lastsvoc, " - ",$rdvoc, "<BR><BR>";
	}
else
	{
	echo "<B><U>FALSCH!</U></B><BR>";
	echo "Sie sagten: ";
	echo $lastsvoc, " - ",$lastdvoc, "<BR>";
	echo "Richtig wäre gewesen: ";
	echo "<B><I>", $lastsvoc, "</I></B> - <B><I>",$rdvoc, "</I></B><BR><BR>";
	}
}
 
$filename5 = "svoc/s";
$filename5.=$rand;
$filename5.=".txt";
$datei5 = fopen( $filename5, "r" );
$inhalt5 = fread( $datei5, filesize( $filename5 ) );
$svoc=$inhalt5;
fclose( $datei5 );
echo "<DIV align=\"center\">";
echo "<FORM action=\"check.php?lang=sp\" method=\"post\">";
echo "<TABLE border=\"0\"><TR><TD align=\"left\" valign=\"center\">Spanisch:<BR>",$svoc;
echo "<INPUT type=\"hidden\" name=\"svoc\" value=\"$svoc\">";
echo "</TD><TD align=\"right\" valign=\"center\">Deutsch:<BR><INPUT type=\"text\" size=\"40\" maxlength=\"40\" name=\"dvoc\" value=\"Vokabel auf Deutsch\" class=\"feld\" onFocus=\"this.form.dvoc.value=''\">";
echo "<INPUT type=\"hidden\" value=\"";
echo $rand;
echo "\" name=\"rand\"></TD></TR>";
echo "<TR><TD colspan=\"2\" align=\"center\" valign=\"center\"><INPUT type=\"submit\" value=\"Überprüfen und nächstes Vokabel abfragen lassen\" class=\"button\"></TD></TR>";
echo "</TABLE></FORM>";
echo "</DIV>";
}
?>

Ich hoffe es kann mir hier wiedereinmal jemand gut helfen...

LG
Freaking Out
 
Wie wärs mal mit debuggen? Zwischenwerte ausgeben mit echo und so den Fehler einzugrenzen? So wie man es normalerweise macht.
 
Ich denke, dass an der Variable-/Werte Übergabe kein Fehler ist... sonst müsste es ja überhaupt nicht funktionieren... allerdings funktioniert es ja immer einmal nach dem ersten aufrufen der php-datei..
naja..
Ich werds auf jeden fall mal versuchen den fehler mit var-ausgabe zu finden...
THX für die antwort...
und sollte ich den fehler nicht finden hoffe ich, dass man mir vielleicht doch noch etwas weiter helfen kann...

LG
Freaking Out
 
Also:
Ich habs jezt schon zum zigsten mal ausprobiert und werde immer noch nicht so wirklich schlau aus den ausgegebenen variablen...
(falls sich jemand die Zeit nehmen will und sich die Funktion des Scripts online anschaun will bitte auf meinem Test-webspace unter: http://www2.100mb4free.de/wanna/voctrainer/check.php?lang=de
[die weiße Schrift ist nur zum debuggen gedacht]

Auf jeden Fall war/ist es immer so wenn man nur alles richtig eingibt wird jedesmal angezeit, das es richtig ist + dem Inhalt der Variablen, die die richtige Lösung beinhalten...
gibt man nun aber beim 1. Mal etwas falsches ein so wird einmal falsch + das dazugehöroge angezeigt und nachher nichts mehr...
so ähnlich auch wenn man die Kette der richtigen Eingaben bricht: gibt man nach wiederholten richtigen Eingaben etwas falsches ein wird auch nichts mehr angezeigt...

Anfangs dachte ich es könnte am Cachen des Browsers liegen, habe diesen Fehler jedoch mittels einer einmaligen Adresse geprüft und daran lag es natürlich nicht...

Irgendwie bin ich langsam am verzweifeln...

Ich hoffe es kann mir doch noch jemand helfen..
Thx
Freaking Out

P.S.: momentan versuche ich nur einmal den Fehler in der Abfrage von Deutsch nach Spanisch zu finden... denn da di umgekehrte Abfrage so ziehmlich den gleichen Code hat sollte sich somit dieses Problem auch gelöst haben... daher lasse ich den (weißen) 'debug-text' nur bei der Abfrage von D -> Sp anzeigen... (war zu faul ;) )
 
Kann mir NIEMAND helfen!!?....
Ich hoffe es findet sich eventuell doch noch jemand...
der code sollte ja schließlich mit meinen minimalistischen php kentnissen nicht allzu schwer sein...
naja...
vielleicht findet sich doch noch jemand, der mir vielleicht bei der Fehlersuche hilft...
Danke schon im vorraus an jeden der mir irgendwie hilfreich ist..
 
Zurück