2015-11-28 4 views
-1

У меня проблемы с моей контактной формой. Я попытался получить форму, которую хочу использовать из некоторых уроков, но не работает. Но я не знаю почему: DПроблемы с контактной формой HTML/PHP

Надеюсь, вы, ребята, можете мне помочь, может быть, это просто небольшая ошибка :) Должно ли это работать, или мне нужно отредактировать некоторые настройки на моем веб-пространстве?

<?php 
    if (isset($_POST["submit"])) { 
     $firma = $_POST['inputFirma']; 
     $vorname = $_POST['inputVorname']; 
     $telefon = $_POST['inputTelefon']; 
     $plzort = $_POST['inputPlzOrt']; 
     $adresse = $_POST['inputStraßeHausnummer']; 
     $firma = $_POST['input']; 
     $name = $_POST['inputName']; 
     $email = $_POST['inputEmail']; 
     $message = $_POST['inputNachricht']; 
     $human = intval($_POST['inputHuman']); 
     $from = 'Demo Contact Form'; 
     $to = '[email protected]'; 
     $subject = 'Nachricht des Kontaktformulars'; 

     $body = "From: $firma\n $vorname\n $name\n PLZ/Ort: $plzort\n Adresse: $adresse\n E-Mail: $email\n Message:\n $message"; 

     // Check if name has been entered 
     if (!$_POST['name']) { 
      $errName = 'Bitte geben Sie Ihren Namen ein'; 
     } 

     // Check if email has been entered and is valid 
     if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      $errEmail = 'Bitte geben Sie eine echte E-Mail-Adresse ein'; 
     } 

     //Check if message has been entered 
     if (!$_POST['message']) { 
      $errMessage = 'Bitte geben Sie eine Nachricht ein'; 
     } 
     //Check if simple anti-bot test is correct 
     if ($human !== 5) { 
      $errHuman = 'Bitte rechnen Sie erneut'; 
     } 

// If there are no errors, send the email 
if (!$errName && !$errEmail && !$errMessage && !$errHuman) { 
    if (mail ($to, $subject, $body, $from)) { 
     $result='<div class="alert alert-success">Thank You! I will be in touch</div>'; 
    } else { 
     $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; 
    } 
} 
    } 
?> 

и HTML:

<form action="" method="post"> 
    <div class="form-group"> 
     <label for="inputFirma">Firma</label> 
     <input type="text" class="form-control" id="inputFirma"> 
    </div> 
    <div class="form-group"> 
     <label for="inputName">*Name</label> 
     <input type="text" class="form-control" id="inputName"> 
    </div> 
    <div class="form-group"> 
     <label for="inputVorname">Vorname</label> 
     <input type="text" class="form-control" id="inputVorname"> 
    </div> 
    <div class="form-group"> 
     <label for="inputStraßeHausnummer">Straße und Hausnummer</label> 
     <input type="text" class="form-control" id="inputStraßeHausnummer"> 
    </div> 

    <div class="form-group"> 
     <label for="inputPlzOrt">Ort/Postleitzahl</label> 
     <input type="text" class="form-control" id="inputPlzOrt">    
    </div> 
    <div class="form-group"> 
     <label for="inputTelefon">Telefon</label> 
     <input type="text" class="form-control" id="inputTelefon">    
    </div> 
    <div class="form-group"> 
     <label for="inputEmail">*E-Mail</label> 
     <input type="email" class="form-control" id="inputEmail"> 
    </div> 
    <div class="form-group"> 
     <label for="inputNachricht">*Ihre Nachricht</label>    
     <textarea type="text" class="form-control" cols="40" rows="5" id="inputNachricht"></textarea>   
    </div> 
    <br> 
    <div class="form-group"> 
     <label for="inputHuman" class="col-sm-2 control-label">2 + 3 = ?</label>   
     <input type="text" class="form-control" id="inputHuman">    
    </div>  
    <br> 
    <button type="submit" class="btn btn-primary margin-bot-50">Senden</button> 
</form> 
+0

У вас есть некоторые JavaScript с указанием, где форма подчиняется, или являются HTML и PHP в том же файле? – wogsland

+0

его в том же файле contact.php – Kjarudi

ответ

0
<?php 
    if (isset($_POST["submit"])) { 
     $firma = $_POST['inputFirma']; 
     $vorname = $_POST['inputVorname']; 
     $telefon = $_POST['inputTelefon']; 
     $plzort = $_POST['inputPlzOrt']; 
     $adresse = $_POST['inputStraßeHausnummer']; 
     $firma = $_POST['input']; 
     $name = $_POST['inputName']; 
     $email = $_POST['inputEmail']; 
     $message = $_POST['inputNachricht']; 
     $human = intval($_POST['inputHuman']); 
     $from = 'Demo Contact Form'; 
     $to = '[email protected]'; 
     $subject = 'Nachricht des Kontaktformulars'; 

     $body = "From: $firma\n $vorname\n $name\n PLZ/Ort: $plzort\n Adresse: $adresse\n E-Mail: $email\n Message:\n $message"; 

     // Check if name has been entered 
     if (!$_POST['name']) { 
      $errName = 'Bitte geben Sie Ihren Namen ein'; 
     } else { $errName = false; } 

     // Check if email has been entered and is valid 
     if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      $errEmail = 'Bitte geben Sie eine echte E-Mail-Adresse ein'; 
     } else { $errEmail = false; } 

     //Check if message has been entered 
     if (!$_POST['message']) { 
      $errMessage = 'Bitte geben Sie eine Nachricht ein'; 
     } else { $errMessage = false; } 
     //Check if simple anti-bot test is correct 
     if ($human !== 5) { 
      $errHuman = 'Bitte rechnen Sie erneut'; 
     } else { $errHuman = false; } 


// If there are no errors, send the email 
if (!$errName && !$errEmail && !$errMessage && !$errHuman) { 
    if (mail ($to, $subject, $body, $from)) { 
     $result='<div class="alert alert-success">Thank You! I will be in touch</div>'; 
    } else { 
     $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; 
    } 
} 
    } 
?> 

В ваш если даного где проверки ошибки я добавил еще так можно определить значения, если нет ошибок. Надеюсь, вы понимаете, что я сделал, и это может решить вашу проблему. Потому что в вашем случае

if (!$errName && !$errEmail && !$errMessage && !$errHuman) {} 

вы проверки вещей, которые не определены вообще раньше, если нет ошибок.

Кроме того, ваш HTML код <form action="" method="post"> Dont заполнили поле действия, так что вам нужно, чтобы заполнить его с PHP файла, в котором представление переменных

+0

Моя проблема в том, что я могу отправить форму, но я не получаю E-Mail. Вот веб-сайт: http://opti-serv-os.de/beta/kontakt.php – Kjarudi

+0

вы не можете отправить электронное письмо, потому что это, если statment никогда не будет истинным 'if (! $ ErrName &&! $ ErrEmail &&! $ errMessage &&! $ errHuman) 'Надеюсь, вы меня поняли. Если ваша форма предоставит вам все поля правильных переменных $ err ... не существует, поэтому вам нужно назначить им значение false, как в примере, так что это, если statment будет true, если все поля заполнены и отправят по электронной почте @Kjarudi – Standej

+0

Я использовал ваш код. Я просто скопировал этот материал с учебника, потому что мой php очень плохой: P Эта ошибка не требуется, не пытайтесь ее удалить. Но он должен работать как обычно? – Kjarudi