Checkbox mit Mehrfachauswahl durch php versenden

PHP:
<?php 
    $error = false;
    if (isset($_POST['submit']))
    {
        $naturwagen = ($_POST['naturwagen']);
        $naturlodge = ($_POST['naturlodge']);
        $zeltlodge = ($_POST['zeltlodge']);
        $andere = ($_POST['andere']);
        $vorname = trim($_POST['txt_vorname']);
        $nachname = trim($_POST['txt_nachname']);
        $strasse = trim($_POST['txt_strasse']);
        $plz = trim($_POST['txt_plz']);
        $ort = trim($_POST['txt_ort']);
        $telefon = trim($_POST['txt_telefon']);
        $mobil = trim($_POST['txt_mobil']);
        $fromemail = trim($_POST['txt_email']);
        $gesehen = trim($_POST['txt_gesehen']);
       
        $naturwagen = implode(',', $naturwagen);
        if ($naturwagen);

        $naturlodge = implode(',', $naturlodge);
        if ($naturlodge) 

        if (!preg_match("/^[a-zA-Z ]+$/",$vorname))
        {
            $error = true;
            $vorname_error = "Bitte geben Sie Ihren Vornamen ein!";
        }
       
        if (!preg_match("/^[a-zA-Z ]+$/",$nachname))
        {
            $error = true;
            $nachname_error = "Bitte geben Sie Ihren Nachnamen ein!";
        }
        
        if (!$error)
        {
            $toemail = "info@manfredschmidt.eu,info@webdesign-fotografie.eu";
            $subject = "Anfrage einer privaten Preisliste Naturwagen ";
            $body = "Folgende Angaben wurden gemacht: \n\n Naturwagen: $naturwagen \n Naturlodge: $naturlodge \n Zeltlodge: $zeltlodge \n Andere: $andere \n Vorname: $vorname \n Nachname: $nachname \n Strasse: $strasse \n PLZ: $plz \n Ort: $ort \n Telefon: $telefon \n Mobil: $mobil \n E-Mail: $fromemail \n gesehen: $gesehen";
            $headers = "von: $fromemail\n";
            $headers .= "Reply-To: $fromemail";
            $header = 'From:' . $email . "n";
            $header .= 'Content-type: text/plain; charset=UTF-8' . "rn";
    
            if (mail ($toemail, $subject, $body, $headers))
                $alertmsg  = '<div class="alert alert-success">
                                    <p>Vielen Dank für Ihr Interesse, wir senden Ihnen die Preisliste umgehend zu!</p>   
                                </div>';
            else
                $alertmsg = '<div class="alert alert-danger text-center">Die &Uuml;bertragung ist fehlgeschlagen, probieren Sie es bitte später nocheinmal!</div>';
        }
    }
?>


Es ist nicht der ganze Code, aber damit müsste man klar kommen.
 
Ich würde die implode der besseren Übersichtlichkeit wegen neuen Variablen zuweisen. Und diese Zuweisung in die if Abfrage verpacken, ob in dem Array überhaupt was drin ist. Dann dürften die Warnungen auch weg sein.

Die Umschreibung der Umlaute wie in der $alertmsg kannst du dir sparen, wenn du alles auf utf-8 deklarierst und auch die Dateien in utf-8 kodierst. Dann kannst du ganz normale Umlaute verwenden.
 
PHP:
   if (isset($_POST['submit']))
   {
       $naturwagen = ($_POST['naturwagen']);
       $naturlodge = ($_POST['naturlodge']);
       $zeltlodge  = ($_POST['zeltlodge']);
       $andere     = ($_POST['andere']);
       $vorname    = trim($_POST['txt_vorname']);
       $nachname   = trim($_POST['txt_nachname']);
       $strasse    = trim($_POST['txt_strasse']);
       $plz        = trim($_POST['txt_plz']);
       $ort        = trim($_POST['txt_ort']);
       $telefon    = trim($_POST['txt_telefon']);
       $mobil      = trim($_POST['txt_mobil']);
       $fromemail  = trim($_POST['txt_email']);
       $gesehen    = trim($_POST['txt_gesehen']);
       
       if (count($naturwagen) > 0)
       {
           $naturwagen = implode(',', $naturwagen);
       }

       if (count($naturlodge) > 0)
       {
           $naturwagen = implode(',', $naturlodge);
       }

       if (!preg_match("/^[a-zA-Z ]+$/", $vorname))
       {
           $errors[] = "Bitte geben Sie Ihren Vornamen ein!";
       }
       
       if (!preg_match("/^[a-zA-Z ]+$/", $nachname))
       {
           $errors[] = "Bitte geben Sie Ihren Nachnamen ein!";
       }

       if (is_array($errors))
       {
           echo '<ul>';

           foreach ($errors as $error)
           {
              echo '<li>'.$error.'</li>';
           }

           echo '</ul>';
       }
           else
       {
           $toemail  = "info@manfredschmidt.eu,info@webdesign-fotografie.eu";
           $subject  = "Anfrage einer privaten Preisliste Naturwagen ";
           $body     = "Folgende Angaben wurden gemacht: \n\n Naturwagen: $naturwagen \n Naturlodge: $naturlodge \n Zeltlodge: $zeltlodge \n Andere: $andere \n Vorname: $vorname \n Nachname: $nachname \n Strasse: $strasse \n PLZ: $plz \n Ort: $ort \n Telefon: $telefon \n Mobil: $mobil \n E-Mail: $fromemail \n gesehen: $gesehen";
           $headers  = "von: $fromemail\n";
           $headers .= "Reply-To: $fromemail";
           $header   = 'From:' . $email . "n";
           $header  .= 'Content-type: text/plain; charset=UTF-8' . "rn";
   
           if (mail($toemail, $subject, $body, $headers))
           {
               $alertmsg = '<div class="alert alert-success"><p>Vielen Dank für Ihr Interesse, wir senden Ihnen die Preisliste umgehend zu!</p></div>';
           }
               else
           {
               $alertmsg = '<div class="alert alert-danger text-center">Die &Uuml;bertragung ist fehlgeschlagen, probieren Sie es bitte später nocheinmal!</div>';
           }
       }
   }
 
Ich würde die implode der besseren Übersichtlichkeit wegen neuen Variablen zuweisen. Und diese Zuweisung in die if Abfrage verpacken, ob in dem Array überhaupt was drin ist. Dann dürften die Warnungen auch weg sein.

Die Umschreibung der Umlaute wie in der $alertmsg kannst du dir sparen, wenn du alles auf utf-8 deklarierst und auch die Dateien in utf-8 kodierst. Dann kannst du ganz normale Umlaute verwenden.

Kannst Du mir sagen wie das geht, das mit dem Implode in Variablen zuweisen, ich finde dazu nichts bei Google.
 
Ich meine einfach nur, für den String einen anderen Namen zu verwenden.
PHP:
if (count($naturwagen) > 0)
     $naturwagen_imp = implode(', ', $naturwagen);
 
Zurück