probleme mit if abfrage

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

probleme mit if abfrage

Beitrag von Shadowman »

so langsam bin ich am verzweifeln, da schriebt man 4 monate nichts in php, schon streikt alles.

ich versuch grad aus spass nen kleinen vokabel "überprüfer zu schreiben, doch bei der korrektur, ob es richtig übersetzt wurde streikt mein script total.

kurz zu den variablen:
$word_0 = "ich";
$word_0_translation = "ich";
$word_0_to_translate = "i";

$word_1 = "du";
$word_1_translation = "du";
$word_1_to_translate = "you";

$word_2 = "er";
$word_2_translation = "er";
$word_2_to_translate = "he";

$word_3 = "sie";
$word_3_translation = "sie";
$word_3_to_translate = "she";

Code: Alles auswählen

for($i=0;$i<$array_size;$i++)
{
	$word[$i]['translation'] = $HTTP_POST_VARS["word_".$i."_translation"];
	$word[$i]['translated'] = $HTTP_POST_VARS["word_".$i];
	$word[$i]['to_translate'] = $HTTP_POST_VARS["word_".$i."_to_translate"];
	
	echo "Sie haben ".$word[$i]['to_translate']." als ".$word[$i]['translated']." übersetzt.";
	
	if($word[$i]['translation'] == $word[$i]['translated'])
	{ 
	$ausgabe[$i] = "<font color='green'>richtig</font>"; 
	}
	else
	{ 
	$ausgabe[$i] = "<font color='red'>falsch</font>"; 
	}
	
	echo "Das war ".$ausgabe[$i].".";
	$ausgabe[$i] = "";
	echo " ".$word[$i]['translation'];
	echo "<br>";
}
Das Problem ist, dass nur das letzte wort als korrekt erkannt wird und alle von 0-2 werden als falsch erkannt. Woran liegt das?

Ich hoffe jemand findet den fehler, denn ich kann nichts falsches entdecken -.-
Proud Admin & Webmaster of http://www.broxx-com.de
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

ich bin kurz vorm verzweifeln, das problem muss an der if abfrage liegen, aber wo????
wenn ich mir beide variablen, einmal die vom user eingegebene und zum anderen die, mit der verglichen wird sind identisch, ich habe alle leerzeichen von beiden strings entfernen lassen aber er erkennt immer nur die letzte vokabel als richtig, der rest ist falsch, wo liegt den der fehler???????????
Proud Admin & Webmaster of http://www.broxx-com.de
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Hast du schon mal geprüft, ob die Variablen auch wirklich übergeben wurden?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

ja, werden sie. ich habe mal den code

Code: Alles auswählen

echo $word[$i]['translated']." = ".$word[$i]['translation'];
darangehängt und beide waren identisch, ich bin wirklich am verzweifeln :(

[EDIT]
Das problem scheint doch irgendwie bei dem übergeben der strings zu liegen. Kurz zur Erklärung was die scripte machen. Als erstes wird eine Datei ausgelesen, in der in jeder zeile ein englisches wort, gefolgt von einem = und der deutschen übersetzung(keine leerzeichen vorhanden an den enden.
Als nächstes wird die datei mit file() eingelesen:

Code: Alles auswählen

$voc_array = file($datei);
und dann mit explode:

Code: Alles auswählen

for($i=0;$i<count($voc_array);$i++)
{
	$words_array[$i] = explode("=",$voc_array[$i]);
}
aufgeteilt. und genau hier liegt das problem. irgendwie kommen zeilenumbrüche und leerzeichen in die strings rein, die ich mit

Code: Alles auswählen

$words_array[$i][1] = nl2br($words_array[$i][1]);
trim($words_array[$i][1]);
$words_array[$i][1] = ereg_replace("<br />", "", $words_array[$i][1]);
einfach nicht rausbringe. is echt zum verzweifeln.
Proud Admin & Webmaster of http://www.broxx-com.de
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Damit wird das auch nie klappen können:

Code: Alles auswählen

trim($words_array[$i][1]);
Der konvertierte String landet im Nirvarna...

Code: Alles auswählen

$words_array[$i][1] = trim($words_array[$i][1]);
ist da erfolgsversprechender...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Shadowman
Mitglied
Beiträge: 170
Registriert: 16.12.2003 19:01
Wohnort: Vaterstetten

Beitrag von Shadowman »

hm, stimmt irgendwie. da hätte ich auch selber draufkommen können, vielen dank für den hinweis, jetzt funktioniert alles :)
Proud Admin & Webmaster of http://www.broxx-com.de
Antworten

Zurück zu „Coding & Technik“