Moin Moin !
Jetzt habe ich den Fehler gefunden:
Das böse Wort darf nicht am Anfang stehen und somit
ist strpos() eine böse Falle weil viele diese Funktion so nutzen.
if(strpos($checkstr,$bad)){
Waaaaah! Mädels! Das kann doch nicht wahr sein!
Was liefert strpos zurück? Steht alles unter http://www.php.net/manual/de/function.strpos.php! Und da steht auch, wie man das Ergebnis RICHTIG abfragt.
<ZITAT>
Anmerkung: Die Meldungen "Zeichen bei Position 0 gefunden [...]" und "Zeichen nicht gefunden [...]" werden oft falsch ausgelegt. Hier die Unterscheidung:
// in PHP 4.0b3 und danach:
$pos = strpos ($mystring, "b");
if ($pos === false) { // Achtung: 3 Gleichheits-Zeichen
// nicht gefunden...
}
// in Versionen vor 4.0b3:
$pos = strpos ($mystring, "b");
if (is_string ($pos) && !$pos) {
// nicht gefunden...
}
</ZITAT>
Wenn der gesuchte String am Anfang, also ab dem Zeichen mit dem Index 0 steht, liefert strpos 0 zurück. Wenn der gesuchte String gar nicht da ist, liefert strpos FALSE. if(0) und if(FALSE) sind für PHP nun einmal identisch.
Alexander
PS: Ich habe keine Ahnung von PHP. Aber ich kann http://www.php.net/ lesen. Und bei dieser strpos-Konstruktion wird mir ÜBEL!
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"