Online Formular

  • Hi,

    konnte mir also doch kurz nen PC nehmen, daher auch schon die "frühe" Antwort. Ich danke dir recht herzlich für dein Engagement, ein kleines Problem habe ich allerdings damit. Er spuckt mir immer folgenden Fehler aus:

    Warning: Invalid argument supplied for foreach() in /home/www/web52/html/senden.php on line 24

    Hab schon versucht mich ein wenig über foreach über google zu informieren und so das Problem vielleicht selbst zu lösen aber da blicke ich wohl nicht so auf die Schnelle durch.
    Außerdem hab ich noch eine Frage und zwar, wenn ich möchte, dass nur der Name, die Abteilung, Tel & Kurzbericht Pflichtfelder sein sollen, dann streiche ich einfach die jeweilige Zeile ( if (!$...) $error_text[0] = "Sie haben keinen .... angegeben."; ) oder muss ich dazu noch etwas beachten?

    MfG, werds wohl erst wieder heut Abend schaffen.

  • Zitat von st0ny

    Hi,

    konnte mir also doch kurz nen PC nehmen, daher auch schon die "frühe" Antwort. Ich danke dir recht herzlich für dein Engagement, ein kleines Problem habe ich allerdings damit. Er spuckt mir immer folgenden Fehler aus:

    Warning: Invalid argument supplied for foreach() in /home/www/web52/html/senden.php on line 24
    Hab schon versucht mich ein wenig über foreach über google zu informieren und so das Problem vielleicht selbst zu lösen aber da blicke ich wohl nicht so auf die Schnelle durch.

    Hast du es online oder lokal versucht ?
    Es kann sein, daß die von deinem (lokalen?) Server benutzte PHP-Version zu alt ist und 'foreach' noch nicht kennt.
    Ich schreib es dir nachher mal um, muß jetzt aber eben noch mal weg.

    Zitat von st0ny

    Außerdem hab ich noch eine Frage und zwar, wenn ich möchte, dass nur der Name, die Abteilung, Tel & Kurzbericht Pflichtfelder sein sollen, dann streiche ich einfach die jeweilige Zeile ( if (!$...) $error_text[0] = "Sie haben keinen .... angegeben."; ) oder muss ich dazu noch etwas beachten?

    MfG, werds wohl erst wieder heut Abend schaffen.

    Du kannst die Teile, die du nicht haben willst, einfach raus nehmen oder einfach nur mit Doppelraute (##) oder Doppelslash (//) auskommentieren.

    G.a.d.M.

    Ronald

    EDIT: habs doch gleich gemacht:

    Tausche mal Zeile 24 (foreach ....) aus gegegen

    Code
    while(list($var,$value) = each($error_text)) $ERRMESS .= "$value
    ";

    Ronald

  • Dann kommt leider dieser Fehler:

    Warning: Variable passed to each() is not an array or object in /home/www/web52/html/senden.php on line 24


    :/

  • Sorry für den Doppelpost, aber ich habe grad bemerkt, dass die Mail trotz des Fehlers ankam. Wie kann das sein?

  • Also bei mir läuft das Script fehlerfrei, was hast du denn blos für eine PHP-Version?

    Setze mal vor die Definition der Fehlermeldungen noch eine Array-Definition ein:

    Code
    $error_text = array();
      if (!$name)              $error_text[0] = "Sie haben keinen Namen angegeben.";
      if (!$abteilung)         $error_text[1] = "Sie haben keine Abteilung angegeben.";
      if (!$email)             $error_text[2] = "Sie haben keine Emailadresse angegeben.";
      if (!$tel)               $error_text[3] = "Sie haben keine Telefonnummer angegeben.";
      if (!$kurzbeschreibung)  $error_text[4] = "Sie haben keine Kurzbeschreibung angegeben.";
      if (!$bericht)           $error_text[5] = "Sie haben keinen Problembericht angegeben.";


    Dürfte von der Logik her auch nichts ändern, denn wenn es daran liegt, dann dürfte dein PHP auch nicht die Text annehme und müßte da schon maulen.

    Probiere es halt mal aus - sonst müssen wir das ganze umstricken.

    G.a.d.M.

    Ronald

  • Zitat von Anonymous

    Sorry für den Doppelpost, aber ich habe grad bemerkt, dass die Mail trotz des Fehlers ankam. Wie kann das sein?

    Die PHP-Fehlermeldung bezieht sich ja nur auf die definerten Fehlertexte.
    Dass das Script trotzdem funktioniert hat, verstehe ich dann allerdings nicht, denn PHP verzeiht keine Fehler und jede Fehlermeldung von PHP fürhrt normalerweise zum Abbruch des Script.

    Normalerweise darf es die Mail auch erst senden, wenn alle Pflichtfelder ausgefüllt sind.

    :?:

  • Durch die Array-Definition scheint es nun einwandfrei zu funktionieren, warum versteh ich allerdings auch nicht. :> Nungut, sollte doch noch ein Fehler auftreteten, melde ich mich nochmal hier. Ansonsten wünsch ich euch noch einen schönen Tag und dir Ronald mal wieder vielen Dank. ;)