2014-09-26 38 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; 

    } 

}