• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

x Felder => 1 Feld ok

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Hallo

Ich habe ein Formular und möcht nun prüfen, ob mindestend eines der Felder mit dem Name, x,y,z einen gültigen Wert enthält.
Wie mach ich dies mit preg_match()?
Oder anders?

wappegraph
 
Code:
if($feld_1 == "WERT" || $feld_2 == "WERT" || $feld_3 == "WERT") {
 // Eines der Felder hatte den Wert "WERT"
}
 
Ja also ich weis den Wert nicht und habe gestern dies probiert:

Code:
if (!preg_match($regEx, $sv_an) or !preg_match($regEx, $sa_an) or !preg_match($regEx, $gr_an) or !preg_match($regEx, $cv_an) or !preg_match($regEx, $cl_an) or !preg_match($regEx, $mou_an))
		{ $error = true; array_push($nError, 'menu_an'); array_push($mError, 'Bitte wählen Sie ein Menu');}

Code:
$regEx = "#[0-9]{1,}#";



Es klappte jedoch nicht.

wapplegraph
 
Deine Fragen können besser beantwortet werden, wenn Du ein wenig spezifischer fragste. Was z.B. ist ein "gültiger Wert" und was bedeutet "klappt nicht"?
 
Also ein gültiger Wert wäre min. eine Zahl in einem der 6 Felder.
Die Eingabe der Felder ist in $name = $_POST['name_an']; gespeichert. Also nicht so simpel.

Klappt nicht heisst: bei einer gültigen Eingabe ist $error = 1;

wapplegraph
 
Klappt nicht heisst: bei einer gültigen Eingabe ist $error = 1;
Das entspricht ja auch dem Wert "true", also ist alles in Ordnung, oder? Null hieße "false".

Edit: Ach so, Du setzt "error" auf true, falls die Abfrage "ungültig" liefert. Sorry, falsch gedacht.
 
Warum hier eine regex bemühen? Gibt es denn in PHP keine parseint Funktion o.ä.? Abgesehen davon ist Deine regex, denke ich, falsch, da nicht verankert. #^[0-9]{1,}$# wäre eine mögliche Variante, aber ich denke, auch #^\d+$# sollte es tun, da \d [0-9] entspricht und + dem {1,}.
 
Ja mein regEx. Doch dies behob den Fehler noch nicht. Und wie parseint-Funktion?
Würde dies Abfrage nicht kürzer gehen?

wapplegraph
 
Also wenn ich es mit preg_match() mache, kann ich nicht irgendwie schreiben:

preg_match($regEx, ($string1, $sring2 ...)); D.H. Meine Suche würde eigentlich bis halt auf einen kleinen Fehler stimmen?