Formular erweitern, aber wie ???

  • Themenstarter Themenstarter ByeBye 135981
  • Beginndatum Beginndatum
B

ByeBye 135981

Ich würde gerne mein Formular erweitern um die Abfrage der Telefonnummer, aber in der E-Mail wird nichts angezeigt. Habe schon alles mögliche probiert und auch nachgelesen, aber ich hänge fest. Bitte um Hilfe. Danke im vorraus :-))))

Alles andere funktioniert und die Mail kommt auch an, bloss die Telefonnummer erscheint nicht

Abschnitt - contact.form.php
PHP:
<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));

header('Content-type: application/json');

require 'php-mailer/class.phpmailer.php';

// Your email address
$to = 'meine@email.adresse.de';

$subject = $_POST['subject'];

if($to) {

   $name = $_POST['name'];
   $email = $_POST['email'];
   $telefon = $_POST['telefon'];
   
   $fields = array(
     0 => array(
       'text' => 'Name',
       'val' => $_POST['name']
     ),

     1 => array(
       'text' => 'Email Adresse',
       'val' => $_POST['email']
     ),
     2 => array(
       'text' => 'Nachricht',
       'val' => $_POST['message']
     ),
     3 => array(
       'text' => 'Telefonnummer',
       'val' => $_POST['telefon']
     ),
   );

   $message = "";
   
   foreach($fields as $field) {
     $message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
   }
   
   $mail = new PHPMailer;

   $mail->IsSMTP();  // Set mailer to use SMTP
   
   // Optional Settings
   //$mail->Host = 'mail.yourserver.com';          // Specify main and backup server
   //$mail->SMTPAuth = true;  // Enable SMTP authentication
   //$mail->Username = 'username';        // SMTP username
   //$mail->Password = 'secret';  // SMTP password
   //$mail->SMTPSecure = 'tls';  // Enable encryption, 'ssl' also accepted

   $mail->From = $email;
   $mail->FromName = $_POST['name'];
   $mail->AddAddress($to);                  // Add a recipient
   $mail->AddReplyTo($email, $name);

   $mail->IsHTML(true);  // Set email format to HTML
   
   $mail->CharSet = 'UTF-8';

   $mail->Subject = $subject;
   $mail->Body  = $message;
   
   if(!$mail->Send()) {
    $arrResult = array ('response'=>'error');
   }

   $arrResult = array ('response'=>'success');

   echo json_encode($arrResult);
   
} else {

   $arrResult = array ('response'=>'error');
   echo json_encode($arrResult);

}
?>


Abschnitt Formular auf der HTM-Seite:
HTML:
  <form id="contactForm" action="php/contact-form.php" method="POST">
                 <div class="row">
                   <div class="form-group">
                     <div class="col-md-6">
                       <label>Dein Name *</label>
                       <input type="text" value="" data-msg-required="Bitte gebe Deinen Namen ein" maxlength="100" class="form-control" name="name" id="name">
                     </div>
                     <div class="col-md-6">
                       <label>Deine E-Mail Adresse *</label>
                       <input type="email" value="" data-msg-required="Bitte gebe Deine E-Mail Adresse ein." data-msg-email="Bitte gebe eine richtige E-Mail-Adresse an" maxlength="100" class="form-control" name="email" id="email">
                     </div>
                   </div>
                 </div>
   
                 <div class="row">
                   <div class="form-group">
                     <div class="col-md-12">
                       <label>Handy-Nummer oder Telefonnummer</label>
                       <input type="int" required class="form-control" id="number" value="" maxlength="100" data-msg-required="Bitte gebe Deinen Nummer ein" name="telefon">
                     </div>
                   </div>
                 </div>
   
  <div class="row">
  <div class="form-group">
  <div class="col-md-12">
  <label>Betreff</label>
  <select data-msg-required="Bitte wähle ein Betreff aus" class="form-control" name="subject" id="subject">
  <option value="Information anfordern">Information anfordern</option>
  </select>
  </div>
  </div>
  </div>
                 <div class="row">
                   <div class="form-group">
                     <div class="col-md-12">
                       <label>Deine Nachricht *</label>
                       <textarea maxlength="5000" data-msg-required="Bitte gebe eine Nachricht ein" rows="10" class="form-control" name="message" id="message"></textarea>
                     </div>
                   </div>
                 </div>
                 <div class="row">
                   <div class="col-md-12">
                     <input type="submit" value="Nachricht senden" class="btn btn-primary btn-lg" data-loading-text="Loading...">
                   </div>
                 </div>
               </form>
 
Zuletzt bearbeitet von einem Moderator:
Ändere mal den Code zum Debuggen ab:

PHP:
  ...
  
   $fields = array(
     0 => array(
       'text' => 'Name',
       'val' => $_POST['name']
     ),

     1 => array(
       'text' => 'Email Adresse',
       'val' => $_POST['email']
     ),
     2 => array(
       'text' => 'Nachricht',
       'val' => $_POST['message']
     ),
     3 => array(
       'text' => 'Telefonnummer',
       'val' => $_POST['telefon']
     ),
   );
  echo "POST:";
  var_dump($_POST);
  echo "fields:";
  var_dump($fields);
 
Wenn ich den Code bei mir mal eingebe, erhalten ich einen Fehler:
In Deiner Zeile 38 von contact.form.php ist das Komma zu viel.
Ansonsten setz in der contact.form.php am Anfang ein print_r($_POST); um zu gucken, ob überhaupt die Daten ankommen (analog zu Saftmeister).
 
Zurück