簡體   English   中英

內聯PHP發送郵件不起作用

[英]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']是否真實,但是您的表單從未設置該值。 您可以進行以下兩項更改來解決此問題:

  1. 為了使submit密鑰出現在您的請求中,您需要將其分配給表單中的字段。 您可能希望將其添加到提交按鈕,只需將name參數添加到您的提交按鈕即可:

     <button name="submit" type="submit" class="rbm_btn_x_out_shtr">subscribe</button> 
  2. 即使進行了上述更改,由於$_POST['submit']的值為空,因此它仍將評估為false。 (您可以在布爾值轉換的規則中看到這一點。)您可以通過檢查它是否設置而不是真實的來解決此問題:

     if (isset($_POST['submit'])) 

另外,您可以查找其他字段,例如nameemail ,因為您知道這兩個字段都將在提交時設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM