dedlfix: Problem mit IE7 und

Beitrag lesen

echo $begrüßung;

Mit Firefox funktionier alles ohne Probleme.

Die Bedingung:

if (mysql_num_rows($res)>0){...}

ist im IE(7)aber nie erfüllt; jedenfalls nicht zum Zeitpunkt des Ausführens.

Kontrollausgaben von Variableninhalten und Ergebnissen von Ausdrücken helfen oftmals solchen Fehlern auf die Spur zu kommen. Geeignete Hilfsmittel dazu sind neben echo und print() noch var_dump() und print_r(). Ebenso hilft es, das error_reporting beim Entwickeln auf E_ALL zu stellen, um Zugriffe auf nicht vorhandene Variablen und Array-Elemente angezeigt zu bekommen.

Warum liefert mysql_num_rows() immer 0? Das wird am SQL-Statement liegen. Es wird keine Datensätze liefern, weil die Bedingungen nicht erfüllt werden. Prüfe die Werte, die in das Statement eingefügt werden. Baue das Statement zuerst in einer weiteren Variable zusammen, gibt diese dann an dbquery() weiter, und vorher mal zur Kontrolle aus.

Wie sieht es mit dem Auswerten von MySQL-Fehlern aus? Kümmert sich dbquery() darum, wenn die darin verwendeten mysql_*-Funktionen durch ihren Rückgabewert das Auftreten eines Fehlers signalisieren?

Wird das $_POST-Array von IE und Firefox gleichermaßen gefüllt oder gibt es da Unterschiede? Array-Inhalte lassen sich gut mit print_r() anzeigen. Eine übersichtlich formatierte Ausgabe erhält man im Browser, wenn man davor ein <pre> einfügt/ausgibt.

$res=dbquery("SELECT * FROM users WHERE LCASE(user_nick)='".strtolower($_POST['login_user'])."' AND user_password='".md5($_POST['login_pw'])."';");

mysql_query() erwartet nur ein einzelnes SQL-Stetement. Das ; am Statement-Ende wird von MySQL nicht benötigt.

echo "$verabschiedung $name";