Olk: Fehlermeldung bei leeren checkboxen - Formular

Hallo zusammen...

ich habe ein Formular, dass von einer zweiten Datei mittels PHP ausgewertet wird, allerding bekomme ich immer folgende Fehlermeldungen angezeigt, wenn aus einem Array alle checkboxen leer waren. Was muss ich machen, um das zu verhindern. Das Formular wird trotzdem versendet, es ist also mehr eine Schönheitskorektur...

Beispiel für eine Fehlermeldung:
Warning: implode() [function.implode]: Bad arguments. in [...]/JAK/Fragebogen/sendmail_Testprodukt.php on line 136

Auszug aus dem Formular:
...
<input type="checkbox" name="Aufbau[]" value="hilfreich"> hilfreich
<br>
<input type="checkbox" name="Aufbau[]" value="strukturiert"> strukturiert
<br>
<input type="checkbox" name="Aufbau[]" value="verst&auml;ndlich"> verst&auml;ndlich
<br>
<input type="checkbox" name="Aufbau[]" value="nachvollziehbar"> nachvollziehbar
<br>
<input type="checkbox" name="Aufbau[]" value="Sonstiges"> Sonstiges<br>
...

Auszug aus der auswertenden Datei (PHP im html-Quelltext eingebettet):
<?php
   ...

$field88 = $_POST["Aufbau"];

...

$message = '

...

'.implode("\n",$_POST['Aufbau']).'

...

';
?>

ich hoffe mir kann jemand bei der Lösung des Problems helfen...

  1. Hello,

    da PHP eine Interpreter-Sprache ist, bietet sie viele Möglichkeiten, die "normale Compilersprachen" meistens nicht oder nur eben wieder mit dem Aufwand der Interpretation bieten.

    Man kann, bevor man auf eine Variable zugreift, vorher fragen, ob diese überhaupt zur Verfügung steht, welchen Typ sie hat und ob sie einen Inhalt hat.

    mit

    if ( isset($_POST['Aufbau']) )
       {
          ## Variable ist vorhanden
       }

    kannst Du vorher fragen, ob die Variable überhaupt vorhanden / als Parameter übermittelr wurde und mit

    if ( is_array($_POST['Aufbau']) )
       {
          ## Varibale ist ein Array und kann daher mit implode() behandelt werden
       }

    kannst Du prüfen, ob die _vorhandene_ Variable vom Typ Array ist.
    Nur dann darfst Du sie mit implode() in einen Skalar umwandeln.

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau
  2. Hallöchen,

    wie Tom schon gesagt hat, solltest du vorher mit is_arrray() überprüfen, obs denn auch nen Array ist.
    Ansonsten könntest du z.B. deine Überprüfung oberhalb deines Formulars setzen und wenn es keine oder fehlende Daten eben nicht enthält den Fehler entsprechend ausgeben und auf den Fehler hinweisen, bzw entsprechende Weietrverarbeitung abbrechen und nur zustandekommen lassen, wenn auch keine Überprüfungsfehler aufgetaucht sind.

    Solltest du im Übrigen grundsätzlich bei allen Benutzereingaben machen.

    Hoffe geholfen zu haben.

    Gruß Patrick