Hallo Leute
Ich sehe vor lauter Bäumen den Wald nicht mehr. Entschuldigt, dass ich euch damit belaste, aber irgendwas ist gewaltig im Argen grad.
Folgendes: Gestern Abend verliess ich den Computer, nachdem ich eine weitere Etappe meiner Webapplikation beendet hatte. Alles funktionierte einwandfrei. Heute starte ich alles wieder wie gewohnt. Nun funktioniert (ohne dass ich auch nur eine Zeile Code geändert hätte) mein Login-Script nicht mehr, wenn der Username Umlaute enthält. Ich werde mir wohl nachher übel den Kopf auf den Tisch stossen müssen, aber zur Zeit stehe ich dem hier echt ratlos gegenüber
Konkret: Mit dem Nicknamen Igäl kann ich mich nicht mehr einloggen.
Das Problem habe ich an folgendem Ort lokalisiert (Funktion in meiner Mysql.class.php):
Echos:
Inhalt in der Tabelle users:
Charset der MySQL-Tabelle und des HTML-Files --> beides utf8_unicode_ci
Warum gibt mir meine Funktion für die Variable $num einen Wert 0 zurück? Die Einträge und Abfrage stimmen überein. Es geht nur um das ä. Login mit "Igel" funktioniert. Was übersehe ich?
Danke für die Hilfe.
Zum Gruss, Igäl
Edit:
Der Query-String in der Funktion db_select_data():
Ich sehe vor lauter Bäumen den Wald nicht mehr. Entschuldigt, dass ich euch damit belaste, aber irgendwas ist gewaltig im Argen grad.
Folgendes: Gestern Abend verliess ich den Computer, nachdem ich eine weitere Etappe meiner Webapplikation beendet hatte. Alles funktionierte einwandfrei. Heute starte ich alles wieder wie gewohnt. Nun funktioniert (ohne dass ich auch nur eine Zeile Code geändert hätte) mein Login-Script nicht mehr, wenn der Username Umlaute enthält. Ich werde mir wohl nachher übel den Kopf auf den Tisch stossen müssen, aber zur Zeit stehe ich dem hier echt ratlos gegenüber
Konkret: Mit dem Nicknamen Igäl kann ich mich nicht mehr einloggen.
Das Problem habe ich an folgendem Ort lokalisiert (Funktion in meiner Mysql.class.php):
PHP-Code:
public static function db_num_data($request, $table, $condition = "") {
echo "Request: ".$request;
echo "<br />Table: ".$table;
echo "<br />Condition: ".$condition;
$num = 0;
$num_resource = Mysql::db_select_data($request, $table, $condition);
$num = mysql_num_rows($num_resource);
return $num;
}
Code:
Request: UsrID Table: users Condition: UsrNickname="Igäl" AND UsrPw="e99a18c428cb38d5f260853678922e03"
Code:
UsrNickname --> Igäl UsrPw --> e99a18c428cb38d5f260853678922e03
Warum gibt mir meine Funktion für die Variable $num einen Wert 0 zurück? Die Einträge und Abfrage stimmen überein. Es geht nur um das ä. Login mit "Igel" funktioniert. Was übersehe ich?
Danke für die Hilfe.
Zum Gruss, Igäl
Edit:
Der Query-String in der Funktion db_select_data():
Code:
SELECT UsrID FROM users WHERE UsrNickname="Igäl" AND UsrPw="e99a18c428cb38d5f260853678922e03"

Aber für die Sicherheit der Passwörter ist dann natürlich der User verantwortlich (Buchstaben, Zahlen und Sonderzeichen sollen ja verwendet werden). "abc123" ist einfach halt das Standardpasswort in der Entwicklung. Das kann ich mit einer Hand gut eingeben ;o)
Kommentar