[英]Inline PHP Send Mail not working
PHP不是我的強項,當我被要求實施模式新聞通訊訂閱彈出窗口時,我感到有些畏縮,因為我知道我將不得不使用PHP。 我整天都在搜尋互聯網,以嘗試各種事情,但是我似乎無法獲得任何幫助,我真的希望有人能夠為我指明正確的方向。 非常簡單,我只需要一個名稱和電子郵件地址,然后將其發送到我指定的帳戶即可。 我確信這確實是最基本的,但是由於缺乏PHP經驗,我完全弄錯了我要去哪里。 我的代碼如下。
<?php
if($_POST["submit"]) {
$recipient="my@emailaddress.com";
$subject="Newsletter Subscription";
$senderName=$_POST["name"];
$senderEmail=$_POST["email"];
$mailBody="Name: $senderName\nEmail: $senderEmail\n\nThis is a test!";
mail($recipient, $subject, $mailBody, "From: $senderName <$senderEmail>");
header('Location:http://www.urltoredirect.com/');
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="sendmail.php">
<div class="rbm_input_txt">
<input type="name" name="name" placeholder="name" required>
</div>
<div class="rbm_input_txt">
<input type="email" name="email" placeholder="email" required>
</div>
<div class="rbm_form_submit">
<button type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
</div>
</form>
</body>
</html>
我將文件另存為sendmail.php並上傳到我的服務器。 當我填寫表格時,頁面只是重新加載,它沒有重定向到指定的URL,並且我沒有收到任何電子郵件。 我懷疑問題出在發送郵件中,一旦排序,重定向將起作用。 誰能看到我顯然想念的東西嗎?
編輯:將name屬性添加到我的代碼中,如下所示。 問題仍未解決。
標簽中必須有名稱
<div class="rbm_input_txt"><input type="name" placeholder="name" name="name" required><input type="email" placeholder="email" name="email``" required
您正在檢查$_POST['submit']
是否真實,但是您的表單從未設置該值。 您可以進行以下兩項更改來解決此問題:
為了使submit
密鑰出現在您的請求中,您需要將其分配給表單中的字段。 您可能希望將其添加到提交按鈕,只需將name參數添加到您的提交按鈕即可:
<button name="submit" type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
即使進行了上述更改,由於$_POST['submit']
的值為空,因此它仍將評估為false。 (您可以在布爾值轉換的規則中看到這一點。)您可以通過檢查它是否設置而不是真實的來解決此問題:
if (isset($_POST['submit']))
另外,您可以查找其他字段,例如name
或email
,因為您知道這兩個字段都將在提交時設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.