2015-01-01 71 views
-3

我是web開發人員的初學者,我正在建立一個有聯繫表單的網站,當輸入詳細信息時,詳細信息必須發送到我的郵件ID。但我不知道爲什麼代碼無法正常工作。聯繫表格的PHP代碼錯誤

<?php 
if(isset($_POST["submit"])){ 
// Checking For Blank Fields.. 
if($_POST["name"]==""||$_POST["email"]==""||$_POST["note"]==""){ 
echo "Fill All Fields.."; 
}else{ 
// Check if the "Sender's Email" input field is filled out 
$email=$_POST['email']; 
// Sanitize E-mail Address 
$email =filter_var($email, FILTER_SANITIZE_EMAIL); 
// Validate E-mail Address 
$email= filter_var($email, FILTER_VALIDATE_EMAIL); 
if (!$email){ 
echo "Invalid Sender's Email"; 
} 
else{ 
$message = $_POST['note']; 
$headers = 'From:'. $email2 . "\r\n"; // Sender's Email 
$headers .= 'Cc:'. $email2 . "\r\n"; // Carbon copy to Sender 
// Message lines should not exceed 70 characters (PHP rule), so wrap it 
$message = wordwrap($message, 70); 
// Send Mail By PHP Mail Function 
mail("[ email removed ]", $message, $headers); 
echo "Your mail has been sent successfuly ! Thank you for your feedback"; 
} 
} 
} 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Hire-a-Tent</title> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <!-- Le styles --> 
    <link href="css/style.css" rel="stylesheet"> 

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> 
    <!--[if lt IE 9]> 
     <script src="js/html5shiv.js"></script> 
    <![endif]--> 

    <!-- jQuery --> 
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> 

    <!-- Javascript --> 
    <script src="js/jquery.placeholder.js"></script> 
    <script src="js/custom.js"></script> 

    <!-- Fav and touch icons --> 
    <link rel="shortcut icon" href="favicon.ico"> 
    </head> 

    <body> 

    <div class="background"> 
    <div class="wrapper"> 
     <header> 
      <div class="tel"><span>CALL US:</span> 9738479234 <br /><span style="padding-left:150px;">9731015469</span></div> 
      <div class="social"> 
       <a href="#"><img src="images/facebook.png" alt="" /></a> 
       <a href="#"><img src="images/twitter.png" alt="" /></a> 
      </div> 
     </header> 

     <div class="sidebar"> 

      <div class="order-form"> 
       <div class="order-form-head"> 
        <h1>Rent -a- Tent</h1> 
       </div> 
       <div class="taxi-line"></div> 

       <!-- Contact Form --> 

         <form action="email_code.php" id="form" method="post" name="form"> 
    <div class="inp"><input type="text" class="required" name="name" id="name" placeholder="Name..." /></div> 
    <div class="inp"><input type="text" class="required" name="tel" id="tel" placeholder="Telephone..." /></div> 
    <div class="inp"><input type="text" class="required" name="email" id="email" placeholder="Email..." /></div> 
    <div class="inp"><textarea class="required" name="note" id="note" placeholder="Message..."></textarea></div> 
    <button type="submit"></button> 
    <div class="spacer"></div> 
</form> 

<?php include "email_code.php"?> 

</div> 

      <div class="address-box"> 
       <img src="images/icon.png" class="icon" alt="" /> 
       <div class="text"> 
       <span>We are located at</span><br /> 
       85, 4th cross road,<br /> 
       GKW layout, vijayanagar<br /> 
       Bengaluru-40 
       </div> 
      </div> 

     </div> 

     <div class="character"> 
      <!-- <img src="images/transparent2.png" class="taxi-driver" alt="" /> --> 

<marquee behavior="alternate">T2 Tent: Rs 100/day --- T3 Tent: Rs 200/day -- Sleeping Bag: Rs 50/day --</marquee> 
</div> 

      <div class="spacer"></div> 

     <footer> 
      <p><strong><br/><br/>Hire-a-tent</strong> &copy; All Rights Reserved. <!--Developed by the <a href="www.Hireatent.com">Frequency Themes --></a></p> 
     </footer> 
    </div> 
    </div> 

    </body> 
</html> 
+1

'不工作'是什麼意思?你有任何錯誤或警告?你有沒有檢查你的日誌? –

+1

「不工作」的定義將對我們有很大的幫助,並且可以大大減少您的問題被拒絕投票的情況。 –

回答

1

有幾件事錯在這裏,所以請仔細去了我完整的答案。

首先,整個代碼的執行是依託條件語句它被設置在:

if(isset($_POST["submit"])){...} 

在那裏尋找並依靠同名命名的特性,這將最有可能在您提交按鈕的存在:

<button type="submit"></button> 

它需要被命名爲:

<button type="submit" name="submit"></button> 

或使用輸入型與name屬性:

<input type="submit" name="submit" value="Submit"> 

然後你有一個未定義的變量$email2這將很可能需要將$email,按:

$email=$_POST['email']; 

有使用錯誤報告,都會顯示「未定義索引提交...」警告,以及「未定義變量email2 ...」。

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

旁註:錯誤報告只應在分期完成,並且從不生產。


現在,這條線:

mail("[ email removed ]", $message, $headers); 

它缺少 「主題」 參數,使用mail()時,這是一個重要的參數。

即:

mail("[ email removed ]", $subject, $message, $headers); 

因此,你將需要添加一個變量吧。

I.e.:

$subject = "Form submission"; 

有關mail()和頭的詳細信息,請訪問:

從手冊:

布爾郵件(字符串$到,字符串$主題,字符串$消息[,聖環$ additional_headers [,字符串$ additional_parameters])


要檢查是否mail()一直在執行的事實,更改:

mail("[ email removed ]", $message, $headers); 

if(mail("[ email removed ]", $message, $headers)){ 
    echo "Mail has been sent."; 
    } 

    else{ 
     echo "Error. Check your mail logs."; 
    } 

如果/當你看到「郵件已發送。」,然後mail()已完成其工作。

如果您沒有收到郵件,請檢查您的垃圾郵件或聯繫您的託管公司,如果您在託管網站上。

如果您是從您自己的計算機上運行此程序,請確保PHP和郵件實際上已安裝,運行並正確配置。


腳註:

您使用以下兩次,這其中的一個可以安全刪除:

$email= filter_var($email, FILTER_VALIDATE_EMAIL); 

編輯:

添加其他形式v ariables的消息,首先聲明POST變量:

$name=$_POST['name']; 
$email=$_POST['email']; 
$tel=$_POST['tel']; 

然後換$message = $_POST['note'];$comment = $_POST['note'];

然後執行:

$message = "$name\n$email\n$tel\n$comment"; 

\n增加了換行符。

+0

謝謝,它像一個魅力。另一件事,我如何在消息變量中添加名稱,電子郵件,電話和消息。感謝您的幫助。 –

+0

@ suhasks不客氣。重新加載我的答案,並看看**編輯:** –

+0

底部附近嗨弗雷德,我收到錯誤,當我添加($ message = $ name \ n $ email \ n $ tel \ $ comment;)爲\ n我猜。不知道如何處理這個。 –