2014-09-26 157 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 2014-09-26 09:08:58

+1

您总是可以使用'print_r($ _ POST)'和脚本中的变量来检查是否正确设置了所有内容。 – 2014-09-26 09:13:38

+0

由于您使用的是名为'$ paket'的未污损变量,并且有错误报告,所以我希望您收到错误。 – 2014-09-26 09:14:51

回答

1

$一揽子贷款没有任何地方设置。

您可以在代码的开头设置所有变量。这样他们都被设置为某种东西,并且更容易让你选择代码中使用的变量。

此外,您可以尝试清理您的代码,它的包装很难读取代码。

而当您收到带有行号的错误消息时,如果每行上没有太多代码,则可以更轻松地找到问题。

并且在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; 

    } 

}