[英]posting contact form to email using php not working
我已經為新網站創建了“即將推出”着陸頁。 在網站設計和開發完成之前,我只希望能夠收集感興趣的各方的電子郵件地址-應該直接提交給我的電子郵件。 我已經編寫了以下代碼,但是在測試過程中沒有收到任何發送到我的地址的電子郵件:
HTML:
form method="post" name="myemailform" action="emailform.php">
<div id="subscribe">
<input type="text" placeholder="enter your email address..." name="emailAddress" id="emailAddress">
<input type="submit" value="Submit">
<div class="clear"></div>
</div>
</form>
PHP:
<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to hit submit";
}
$visitor_email = $_POST['emailAddress'];
$email_from = $_POST['emailAddress'];
// Validate FIRST
if(empty($visitor_email))
{
echo "Email address is required";
exit;
}
$email_from = 'myemail@gmail.com';
$email_subject = "New Form";
$email_body = "You have received a new notifcation from $visitor_email.\n".
$to = "myemail@gmail.com";
$headers = "From: $email_from \r\n"
// SEND EMAIL
mail($to,$email_subject,$email_body,$headers);
?>
這是我第一次嘗試服務器端腳本。 您可以在我的代碼中看到任何不正確的內容嗎?
您的條件陳述
if(!isset($_POST['submit']))
正在尋找一個命名的提交按鈕:
<input type="submit" value="Submit">
應該是
<input type="submit" value="Submit" name="submit">
Undefined index
錯誤。 如果您的實際代碼似乎也缺少<
for form method="post"
。
您還缺少$headers = "From: $email_from \\r\\n"
應該顯示為$headers = "From: $email_from \\r\\n";
加,
$email_body = "You have received a new notifcation from $visitor_email.\n".
刪除末尾的點並替換為分號
$email_body = "You have received a new notifcation from $visitor_email.\n";
並使用錯誤報告
存在
error_reporting(E_ALL);
ini_set('display_errors', 1);
放在您打開<?php
標記之前,如果在代碼中發現,它將發出任何錯誤信號。
邊注:
您不需要這個name="myemailform"
。
您是從本地計算機還是托管服務器運行測試? 發送電子郵件的要求可以在以下位置找到: http : //php.net/manual/en/mail.requirements.php
您可以訪問php.ini嗎? 您需要在服務器中安裝可運行的電子郵件系統,或者訪問php.ini來配置SMTP參數。 您正在運行什么操作系統?
您需要在計算機上設置SMTP服務器才能發送郵件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.