PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bedingungen



Goldfinger
02-01-2007, 12:26
Hi zusammen,

ich habe folgendes Problem:

Bei folgenden Abfrage

if($test!=="m12") {
weiterleitung();
}
if(!preg_match('/\d\d\d\d/',$testuser)) {
weiterleitung();
}

stelle ich sicher das die Eingabe diese Eigenschaften erfüllt.
Ich möchte jetzt aber die Bedinung das beide Eigenschaften gleichzeitig erfüllt werden.

Folgendes funktioniert aber nicht:


if($test!=="m12" && !preg_match('/\d\d\d\d/',$testuser))


Ich check nicht warum das nicht funktioniert und wie das genau lauten sollte.

tschloss
02-01-2007, 15:26
Hi zusammen,

ich habe folgendes Problem:

Bei folgenden Abfrage

if($test!=="m12") {
weiterleitung();
}
if(!preg_match('/\d\d\d\d/',$testuser)) {
weiterleitung();
}

stelle ich sicher das die Eingabe diese Eigenschaften erfüllt.
Ich möchte jetzt aber die Bedinung das beide Eigenschaften gleichzeitig erfüllt werden.

Folgendes funktioniert aber nicht:


if($test!=="m12" && !preg_match('/\d\d\d\d/',$testuser))


Ich check nicht warum das nicht funktioniert und wie das genau lauten sollte.

Vlt. solltest du beide Teilausdrückeklammern "( (..) && !(...) ) ?
Als Workaround kannst du den zweiten if-Ausdruck ja auch in den den ersten if-Körper "hineinkaskadieren".
Und warum vergleichst du nicht mit "!=" statt "!=="?

Ldi91
02-01-2007, 16:38
Hi zusammen,

ich habe folgendes Problem:

Bei folgenden Abfrage

if($test!=="m12") {
weiterleitung();
}
if(!preg_match('/\d\d\d\d/',$testuser)) {
weiterleitung();
}

stelle ich sicher das die Eingabe diese Eigenschaften erfüllt.
Ich möchte jetzt aber die Bedinung das beide Eigenschaften gleichzeitig erfüllt werden.

Folgendes funktioniert aber nicht:


if($test!=="m12" && !preg_match('/\d\d\d\d/',$testuser))


Ich check nicht warum das nicht funktioniert und wie das genau lauten sollte.

Es könnte an der Verknüpfung liegen. Im 1. BSP hast du die beiden If hintereinander gelegt. Die && Verknüpfung verhält sich so als seien die Ifs ineinander verschachtelt. Probiere is so:

if($test!=="m12" || !preg_match('/\d\d\d\d/',$testuser))

tschloss
02-01-2007, 16:56
Es könnte an der Verknüpfung liegen. Im 1. BSP hast du die beiden If hintereinander gelegt. Die && Verknüpfung verhält sich so als seien die Ifs ineinander verschachtelt. Probiere is so:

if($test!=="m12" || !preg_match('/\d\d\d\d/',$testuser))

Goldfinger schrieb aber:


stelle ich sicher das die Eingabe diese Eigenschaften erfüllt.
Ich möchte jetzt aber die Bedinung das beide Eigenschaften gleichzeitig erfüllt werden.

Ldi91
02-01-2007, 17:06
Goldfinger schrieb aber:

Oh sorry, habe ich überlesen.

EDIT:
mach mal

if($test!=="m12") {
if(!preg_match('/\d\d\d\d/',$testuser)) {
weiterleitung();
}
}

tschloss
02-01-2007, 17:32
Oh sorry, habe ich überlesen.

EDIT:
mach mal

if($test!=="m12") {
if(!preg_match('/\d\d\d\d/',$testuser)) {
weiterleitung();
}
}

Du alter Hesse, das hatte ich oben auch schon geschrieben ;)

Ldi91
02-01-2007, 17:50
Du alter Hesse, das hatte ich oben auch schon geschrieben ;)
Ich habe es halt nochmal ausgeschrieben.