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