das ist bestimmt ganz einfach, aber ich komme nicht drauf,
Wie kann ich $_POST[‘feld’] dahingehend prüfen ob nur Leerzeichen im Feld sind.
Ich weiß wie ich Leerzeichen ausschließe, aber dann sind gar keine erlaubt.
Eine Eingabe mit nur Leerzeichen (Space) soll nicht erlaubt sein, aber “text text text” soll erlaubt sein.
Am einfachsten und m.E. zweckmaeszigsten - Feldinhalt mit trim() behandeln (denn Whitespace am Anfang und Ende will man ja idR. auch nicht), und dann schauen, ob mehr als ein Leerstring “” uebrig geblieben ist.
if(preg_match('#^\s*$#', $_POST['erstesFeld'])) {
$error[0] =" Fehler im erstesFeld";
}
if(preg_match('#^\s*$#', $_POST['zweitesFeld'])) {
$error[1] =" Fehler im zweitesFeld";
}
if(preg_match('#^\s*$#', $_POST['drittesFeld'])) {
$error[2] =" Fehler im drittesFeld";
}
kann ich das irgenwie komprimieren , dass ich alle Formularfelder mit einmal abfrage, aber einzeln und eine allgemeine Fehlermeldung ausgebe?
Wenn ich
$pruefefeld=$_POST[‘erstesFeld’].$_POST[‘zweitesFeld’].$_POST[‘drittesFeld’];
und $pruefefeld überprüfe müssen ja alle Felder leer sein, dass ist es also nicht.
foreach($_POST as $key => $value) {
if(preg_match(’#^\s*$#’, $value)) {
if ( $key != “”){ $error[0]=“bitte keine leeren Felder”;}
}
}
echo $error[0];
?>[/code]
Ich habe hier mal ein ganz kleines Testform.
Wenn ich nicht irre, passt das, nur es ist ich habe nicht !preg_match.
Ist das trotzdem OK?
Ich bin noch am Anfang mit PHP und deswegen unsicher
Ich denke ich weiß es.
Das Ausrufezeichen am Anfang ist eine logische Negation (ich weiß es, verstehe es aber nicht ganz)
\s Erkennt Whitespaces wie Leezeichen.
Das würde bedeuten, der Ausdruck ist wahr, wenn der auf das Ausrufezeichen nicht wahr ist.
Im Umkehrschuss, der Ausdruck ist wahr wenn preg_match wahr ist.