Mailinglisten-Archive |
Daniel Schuster wrote: > beim folgenden Code kommt immer der Fehler: > > Warning: REG_BADRPT in lineXXXX > ... >if(! eregi("*saxen\.net*",$HTTP_REFERER)){ //Hier kommt immer der obige fehler!! > ... > was hat der fehler zu bedeuten? die ereg Funktionen erwarten eine 'richtige' regular expression, nicht eie vom Dateinamentyp, und da hat der Stern alleine keine Bedeutung, sondern bezieht sich immer auf eine beliebige Anzahl von Symbolen, die durch den vorhergehenden Ausdruck beschrieben wurden das hintere Ende bedeutet damit "0, 1 oder mehrere t's am Ende" und das vordere Ende "0, 1 oder mehrere, ja was eigentlich???" deshalb der Fehler was du eigentlich schreiben wolltest war ".*saxen\.net.*" das funktioniert, liefert aber auch Treffer für niedersaxen.net oder www.irgendwo.de/verzeichnis/unterverzeichnis/saxen.net deshalb brauchst du eigentlich eher "^http://([^/\.]*\.)*saxen.net/.*" und das O'Reilly Buch über reguläre Ausdrücke in allen Lebenslagen (der Ausdruck ist nicht perfekt, da er zu viele mögliche Zeichen im Hostnamen zuläßt, aber im HTTP_REFERER sollten ja eh nur gültige Namen auftauchen, und so erfüllt er genau seinen Zweck) -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de
php::bar PHP Wiki - Listenarchive