phpbar.de logo

Mailinglisten-Archive

[php] Formularauswertung in PHP, Überprüfung der Felder auf Leer

[php] Formularauswertung in PHP, Überprüfung der Felder auf Leer

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Okt 16 18:17:44 CEST 2007


Hallo Marita,

Am Dienstag, 16. Oktober 2007 schrieb Marita Betz:
> ich habe ein Formular, wo  neben normalen Feldern auch Checkboxen und
> Radiobuttons vorkommen. Das funktioniert auch soweit, wenn alles
> angeklickt wird.
>
> Wenn man aber z. B. die Checkboxen ausläßt und da nichts anklickt
> kommen Fehlermeldungen.
>
> *Warning*: Invalid argument supplied for foreach() in
> */home/www/web225/html/ammerseelech/webauftritt/media_subscribe.php*
> on line *243*
>
> *Warning*: Invalid argument supplied for foreach() in
> */home/www/web225/html/ammerseelech/webauftritt/media_subscribe.php*
> on line *247*

[...]

> Geht das irgendwie mit dem Befehl  if (empty
> ($_POST['CUSTOMER'])==FALSE)

if (isset($_POST['Customers']) { ... } reicht. Nicht "CUSTOMER", 
sondern "Customers". Wichtig! :-)

> Ich habe es jetzt so mal eingebaut, aber leider bringt das Skript
> noch Fehlermeldungen.

Das liegt daran, daß Deine untenstehenden if-Bedingungen keine 
geschweiften Klammern besitzen und somit einzeilig ausgewertet werden, 
was aber wiederum nicht paßt und damit auch zusätzlich noch zu neuen 
Fehlermeldungen führen müßte.

> $mailinhalt=$_POST['env_report']."\n".$_POST['recipient']."\n".$_POST
>['subject']."\n". $_POST['sort']."\n".
>   $_POST['redirect']."\n".$_POST['required']."\nConfirm:
> ".$_POST['Confirm_Add']."\n\nCustomer:";
>
>     if (empty($_POST['Customers'])==FALSE)

Hier fehlt die öffnende Klammer für ein mehrzeiliges if:
{

>     foreach ($_POST['Customers'] as $elem) {
>     $mailinhalt.="\n- ".$elem;
>     }

Hier fehlt die schließende Klammer:
}

>   elseif (empty $_POST['Topics'])==FALSE)

Hier darf kein elseif stehen, sonst werden die "Topics" nichts 
ausgegeben, wenn es "Customers" gibt! Es muß also if (...) ... heißen.

Außerdem fehlt hier - wie oben - die öffnende Klammer für das 
mehrzeilige if:
{

>     $mailinhalt.="\n\nTopics:";
>     foreach ($_POST['Topics'] as $elem1) {
>     $mailinhalt.="\n- ".$elem1;
>     }

Hier fehlt wieder die schließende Klammer:
}

> else

Dieses "else" muß weg! :-)

>     $mailinhalt.="\n\nExlusive

[...]


Viele Grüße,
Lutz

php::bar PHP Wiki   -   Listenarchive