preg_match und Fehlermeldung

Alice

Erfahrenes Mitglied
Hallo Liebe tutorials.de User/in. :)

Ich habe ein Problem mit der preg_match Funktion. Ich möchte das bei einem nicht erlaubten Zeichen eine Fehlermeldung angezeigt wird aber ich bekomme das als PHP-Anfänger leider nicht alleine hin.

Das ist der ursprüngliche Code:
PHP:
if  (preg_match('/^[a-z]{1,32}$/', $VAR1) AND preg_match('/^[0-9]{1,32}$/', $VAR2) AND preg_match('/^[äöü]{1,32}$/', $VAR3)){

Die geschweifte Klammer "{" (heißt das so?) wird am ende des Skriptes geschlossen.

Ich habe den Code etwas umgebaut:
PHP:
if  (preg_match('/^[a-z]{1,32}$/', $VAR1)) {
    echo "Es sind nur Buchstaben von a-z erlaubt.";
}
if (preg_match('/^[0-9]{1,32}$/', $VAR2)) {
    echo "Es sind nur Zahlen von 0-9 erlaubt.";
}
if (preg_match('/^[äöü]{1,32}$/', $VAR3)) {
    echo "Es sind nur Umlaute erlaubt.";
}

Der Code funktioniert so aber leider nicht. Ich denke es liegt an der fehlenden geschweiften Klammer (Siehe Ursprünglichen Code) aber auch wenn ich die geschweifte Klammer am ende des Codes einsetze, läuft das Skript nicht. Irend etwas mache ich falsch aber ich weiss leider nicht was.

Ich hoffe, jemand aus diesem Forum kann mir helfen das der Code funktioniert. :)
 
Der Code stimmt schon. Aber du prüfst faslch. Due Gibst jetzt eine Fehlermeldung im True-Fall zurück

Versuchs mal mit einem ! vor dem preg_match
PHP:
if  (!preg_match('/^[a-z]{1,32}$/', $VAR1)) {
    echo "Es sind nur Buchstaben von a-z erlaubt.";
} else {
    echo "alles Richtig";
}
 
Wenn ich diesen Code einfüge:
PHP:
if  (!preg_match('/^[a-z]{1,32}$/', $VAR1)) {{
    echo "Es sind nur Buchstaben von a-z erlaubt.";
} else {
    echo "alles Richtig";
} 

if  (!preg_match('/^[A-Z\-]{1,32}$/', $VAR2)) {
    echo "Es sind nur Zahlen von 0-9 erlaubt..";
} else {
    echo "alles Richtig";
}

if  (!preg_match('/^[0-9\-]{1,32}$/', $VAR3)) {
    echo "Es sind nur Umlaute erlaubt.";
} else {
    echo "alles Richtig";
}

bekomme ich die Fehlermeldung: Parse error: syntax error, unexpected '}' in

Ich denke das kommt daher weil der Ursprüngliche Code mit einem "{" aufhört. Die preg_match Funktion hat quasi den Gesamten restlichen PHP-Code mit diesen geschweiften Klammern umklammert. Ich muss also das "{" in den Code einfügen aber an welche Stelle?

Hier noch einmal der funktionierende Ursprüngliche Code:
PHP:
if  (preg_match('/^[a-z]{1,32}$/', $VAR1) AND preg_match('/^[0-9]{1,32}$/', $VAR2) AND preg_match('/^[äöü]{1,32}$/', $VAR3)){

Ganz am Ende ist die geschweifte Klammer die sich öffnet und erst ganz zum Schluss des Skriptes wieder geschlossen wird.
 
Zuletzt bearbeitet:
Also, ich habe den Code-Schnipsel von dir ohne das { getestet und er bringt kein Parse-Error. Ergo ist in dem von dir geposteten Code ausser dem { zuviel kein Fehler drin. Der Fehler muss ausserhalb des veröffentlichten Codes liegen.
Das einzige was wir dir so helfen können, ist das wir die Fehlermeldung für dich ins deutsche übersetzen.
 
Zurück