schiefness: Fehler in Kontaktformular, aber wo?

Guten Tag.

Ich habe versucht, ein PHP-Script für ein Kontaktformular einzubinden auf meine HP. Habe die Seite hochgeladen und jetzt wird mir folgendes angezeigt:

Parse error: syntax error, unexpected ']' in /var/www/web433/html/kontakt1.php on line 40

Das heißt ja, dass in der Zeile 40 etwas nicht stimmt. Aber da ich mich mit PHP nicht auskenne, sehe ich den Fehler nicht. Könnte jemand bitte mal drüber gucken!?

if( preg_match('/^[w&'.-+]+@[w]+.([w-]+.)*?[a-z]+$/is' , $_POST['email'] ) ) { $m_email = $_POST['email']; }

Und was bedeutet eigentlich generell unexpected? Dass da ein Zeichen kommt, was da noch nicht sein darf, weil vorher ein anderes fehlt?

Danke für Hilfe.

  1. Und was bedeutet eigentlich generell unexpected? Dass da ein Zeichen kommt, was da noch nicht sein darf, weil vorher ein anderes fehlt?

    Richtig, es kann sich z.B um einen nicht korrekt abgeschlossene Zeile davor handeln.

    In deinem Fall ist dein regulärer Ausdruck ein String der durch einfache Hochkommas begrenzt wird - dh innerhalb des Strings muss ein eventuell auftauchendes einzelens Hochkomma entsprechend maskiert werden.

    Deine E-mail-Adressprüfung ist übrigens (wie viele andere auch) fehlerhaft - Soweit ich das Beurteilen kann würde z.B. "foo bar"@example.com oder x#x@example.com durchfallen. Ggf. solltest du nur prüfen, ob eine Adresse einen Klammeraffen beinhaltet - über alles andere haben sich schon zu viele den Kopf zerbrochen :)

    Im SELFHTML-Blog gibts dazu afaik einen Artikel.

    1. Vielen Dank für Deine Antwort, ich musste allerdings erstmal gucken, was maskieren bedeutet. :(

      Das Problem ist eben, dass ich mich mit der Script-Sprache null auskenne und immer noch nicht weiß, wann ein einzelnes Hochkomma maskiert werden muss. Generell immer? Ich hätte eine Idee, wo eine eckige Klammer fehlt. :D Aber ich kann ja nicht rumraten.

      1. Hi,

        Das Problem ist eben, dass ich mich mit der Script-Sprache null auskenne und immer noch nicht weiß, wann ein einzelnes Hochkomma maskiert werden muss.

        Dann solltest du zuerst mal das durcharbeiten:
        http://www.php.net/manual/en/language.types.string.php

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Danke. Das ist dein Hobby, oder?