Mailinglisten-Archive |
Hallo Sebastian, nur eine kleine Korrektur. Ich gehe mal davon aus, dass Du das sonst richtig machst. Sebastian Mendel wrote: > du willst das ein String bestehend nur aus Leerzeichen genauso als > Leer/Falsch eingestuft wird wie ein tatsächlich leerer String, oder? > > dann ist trim() genau das was du suchst > > $blah = ' '; > $blah = trim($blah); > if (! empty($blah)) { > // $blah hat inhalt > } Für den Fall, dass $blah auf jeden Fall definiert ist, kann man sich das empty doch sparen. empty ist dafür da, zu prüfen, ob die Variable, 0 oder false oder nicht definiert ist. Dies reicht: if (!trim($blah)) { $errors[] = "Kein Blah!"; } Ansonsten gibt es eine Notice, wenn man versucht ein nicht vorhandenes $blah zu trimmen: Notice: Undefined variable: blah in ... Als Tipp an Sven: Bei Formulardaten mache ich das so (falls ich das zu Fuß mache): $f_blah = ''; (f steht für Formularfeld) if (isset($_POST['blah'])) { $f_blah = $_POST['blah']; if (!trim($f_blah) { $errors[] = "Kein Blah!"; } else { //$f_blah validieren } } Auf jeden Fall sollte man die POST-Variable anders benennen, als sie bei einer eventuell vorhandenen register_globals-Einstellung heißen würde, um Verwirrungen oder Fehlerquellen zu vermeiden. Hat man viele Request-Variablen zu prüfen, sollte man das Verfahren automatisieren, indem man einer Validierungsklasse sagt, welche Variablen man erwartet und welche Validierungen darauf anzuwenden sind. Als Rückgabe erhält man dann die "gereinigten" Daten und/oder die Fehlermeldungen. > oder besser (falls 0 als Eingabe erlaubt ist): > > if (isset($blah) && strlen($blah)) { > // $blah hat inhalt > } Hier das gleiche Problem. isset gehört an den Anfang. Viele Grüße Peter -- http://www.media-palette.de/
php::bar PHP Wiki - Listenarchive