Problem mit strcasecmp

PhoenixDH

Erfahrenes Mitglied
Guten Morgen zusammen,

ich habe gerade festgestellt das in meiner Forensoftware eine Funktion nicht mehr funktioniert.
Man kann nicht an User die ein "&" im Usernamen haben eine PM schicken.

Grund ist folgende Zeile:
Code:
strcasecmp($to_users[$n]['username'], str_replace("\'", "'",$to_username_array[$n]))

Der Wert ist nicht gleich.
Ich habe mir mal beide Werte optisch per echo ausgeben lassen.
Optisch sind die Werte gleich, aber binär scheinbar nicht.

Woran kann das Liegen?

Dank euch!
 
Hallo PhoenixDH,
ich habe das ganze kurz getestet und konnte erstmal kein Problem feststellen:

PHP:
$var1 = "Na&me";
$var2 = "na&me";

if (strcasecmp($var1, $var2) == 0) {
    echo 'Test: $var1: "'.$var1.'" ist gleich $var2: "'.$var2.'" bei einem String-Vergleich.';
}
--> Test: $var1: "Na&me" ist gleich $var2: "na&me" bei einem String-Vergleich

Im PHP.net Manual gibt es einen Hinweis auf die Codierung, die dir einen Strich durch die Rechnung machen könnte (Siehe hier).

So kann es sein, das das "&" zwar im Browser als kaufmännisches Und ausgegeben wird, jedoch abers verarbeitet oder gespeichert -> werf mal einen Blick in die Datenbank

Soweit erstmal zu meinen Vermutungen, ich hoffe es hilft!

Grüße aus Balve,
Sebastian
 
Dank dir!
Hab gekuckt in der DB, da steht wirklich anstatt & ein &

Dann muss ich mal kucken ob ich das irgendwie vorher ersetzt bekomme.
 
Zurück