2014-09-26 3 views
1

У меня возникли проблемы с контактной формой. Когда я отправляю его, я получаю пустое письмо без отправителя и сообщения и т. Д. Я много раз менял код, но он по-прежнему отправляет пустую почту. Это HTML-код:

<form id="contact-form" class="contact" action="contact.php" method="post"> 
    <input class="contact-input white-input" type="text" required="" name="contact-names" placeholder="Ime in priimek*" required /> 
    <input class="contact-input white-input" type="email" required="" name="contact-email" placeholder="Elektronski naslov*" required /> 
    <font color="white" style="display: table;">Nagradne igre:</font> 
    <select id="izbira" name="paket" style="display:table;"> 
     <option value="">Izberite paket...</option> 
     <option value="Osnovnipaket">Osnovni paket (250€ + DDV)</option> 
     <option value="Standardnipaket">Standardni paket (800€ + DDV)</option> 
     <option value="Premiumpaket">Premium paket (999€ + DDV)</option> 
    </select> 
    <br><font color="white" style="display: table;">Nabiranje oboževalcev</font><br> 
    <select id="izbirao" name="paketo" style="display:table;"> 
     <option value="">Izberite paket...</option> 
     <option value="Osnovnipaket">Osnovni paket (250€ + DDV)</option> 
     <option value="Standardnipaket">Standardni paket (800€ + DDV)</option> 
     <option value="Premiumpaket">Premium paket (999€ + DDV)</option> 
    </select> 
    <textarea class="contact-commnent white-input" rows="2" cols="20" name="contact_message" placeholder="Vaše sporočilo..."></textarea> 
    <input type="submit" value="Pošlji" name="submit" id="submit-button" class="contact-submit" style="display:block;" /> 
</form> 

и это contact.php код:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    if (isset($_POST["contact-email"])) { $email = $_POST["contact-email"]; } 
    if (isset($_POST["contact-names"])) { $ime = $_POST["contact-names"]; } 
    if (isset($_POST["paket"])) { $paket = $_POST["paket"]; } 
    if (isset($_POST["paketo"])) { $paketobozevalci = $_POST["paketo"]; } 
    if (isset($_POST["contact_message"])) { $test = $_POST["contact_message"]; } 
    $sporocilo = "Paket nagradna igra: $paket". "Paket oboževalci: $paketobozevalci". "Sporočilo: $test"; 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
    $headers .= 'From: '. $email .'' . "\r\n"; 
    $headers .= 'Reply-To: '.$email ."\r\n"; 
    $headers .= 'X-Mailer: PHP/' . phpversion(); 
    $subject = "Kontaktni obrazec"; 
    $poslji = mail("[email protected]",$subject,$sporocilo,$headers); 
    if ($poslji) 
    { 
     echo '<style>.contact_success_box {display:block;}</style>'; 
    } 
} 
+0

Что такое неопределенный индекс? – Gaurav

+1

Вы всегда можете 'print_r ($ _ POST)' и переменные в вашем скрипте проверить, что все установлено так, как должно быть. –

+0

Поскольку вы используете переменную с неопределенностью с именем '$ paket' и сообщаете об ошибках, я ожидаю, что вы получите ошибку. – 2014-09-26 09:14:51

ответ

1

$ Paket не установлен в любом месте.

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

Также вы можете попробовать немного очистить свой код, его трудно прочитать код, когда он упакован.

И когда вы получаете сообщение об ошибке с номером строки, вы можете с легкостью найти проблему, если на каждой строке не так много кода.

И выдает сообщение об ошибке, когда функция mail() не работает, а не только сообщение succes.

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

$mailto = "[email protected]"; 
$email = ""; 
$ime = ""; 
$paket = ""; 
$paketobozevalci = ""; 
$test = ""; 
$sporocilo = ""; 
$headers = ""; 
$subject = "Kontaktni obrazec"; 
$poslji = null; 
$succes = '<style>.contact_success_box {display:block;}</style>'; 
$failure = '<style>.contact_failure_box {display:block;}</style>'; 

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 

    if (isset($_POST["contact-email"])) { 

     $email = $_POST["contact-email"]; 

    } 

    if (isset($_POST["contact-names"])) { 

     $ime = $_POST["contact-names"]; 

    } 

    if (isset($_POST["paket"])) { 

     $paket = $_POST["paket"]; 

    } 

    if (isset($_POST["paketo"])) { 

     $paketobozevalci = $_POST["paketo"]; 

    } 

    if (isset($_POST["contact_message"])) { 

     $test = $_POST["contact_message"]; 

    } 

    $sporocilo .= "Paket nagradna igra: $paket"; 
    $sporocilo .= "Paket oboževalci: $paketobozevalci"; 
    $sporocilo .= "Sporočilo: $test"; 

    $headers .= "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
    $headers .= 'From: ' . $email . "\r\n"; 
    $headers .= 'Reply-To: ' . $email . "\r\n"; 
    $headers .= 'X-Mailer: PHP/' . phpversion(); 

    $poslji = mail($mailto, $subject, $sporocilo, $headers); 

    if ($poslji) { 

     echo $succes; 

    } else { 

     echo $failure; 

    } 

} 
Смежные вопросы