簡體   English   中英

PHP / HTML時事通訊

[英]PHP/HTML newsletter issue

我在WordPress網站上有一個簡單的表單,該表單允許用戶注冊新聞通訊:

的HTML

<form method="POST" action="newsletter.php">
<input type="text" class="form" name="Email" size="20" placeholder="Email address">
<input type="submit" class="button" value="Submit" name="Submit"></p>
</form>

提交電子郵件地址后,用戶將被重定向到名為newsletter.php的新站點,並顯示以下消息: 您的電子郵件地址已成功提交

的PHP

<?php
$recipient = "blabla@mail.com";
$subject = "Newsletter subscription";
$sender = $recipient;
$body .= "Add this email adress to the newsletter: \n";
$body .= " ".$_REQUEST['Email']." \n";
mail( $recipient, $subject, $body, "From: $sender" ) or die ("Mail could not be sent.");
echo "Your email address has been successfully submitted";
?>

我現在想知道的是:如何在WordPress網站上而不是newsletter.php上顯示“成功消息”?

理想的解決方案是在注冊表單下方打開一個小div。

您可以將表單更改為如下形式:

<form method="POST">
    <input type="text" class="form" name="Email" size="20" placeholder="Email address">
    <input type="submit" class="button" value="Submit" name="Submit"></p>
</form>

(沒有action屬性表示“提交當前URL”。)

然后將PHP添加到表單所在的同一頁面上,並添加一個檢查,使其僅在提交表單后運行:

<?php
    if(isset($_POST['Email'])) {
        $recipient = "blabla@mail.com";
        $subject = "Newsletter subscription";
        $sender = $recipient;
        $body .= "Add this email adress to the newsletter: \n";
        $body .= " ".$_REQUEST['Email']." \n";
        mail( $recipient, $subject, $body, "From: $sender" ) or die ("Mail could not be sent.");
        echo "<div>Your email address has been successfully submitted</div>";
    }
?>

您可能還想更改錯誤處理策略,以輸出<div class="error">或類似的方法而不是死掉。


我已經有一段時間沒有使用Wordpress了,所以我不確定那里的細節,但是如果這是一個准系統的PHP網站,則可以將其全部放在第一頁的源代碼中:

<form method="POST">
    <input type="text" class="form" name="Email" size="20" placeholder="Email address">
    <input type="submit" class="button" value="Submit" name="Submit"></p>
</form>

<?php
    if(isset($_POST['Email'])) {
        $recipient = "blabla@mail.com";
        $subject = "Newsletter subscription";
        $sender = $recipient;
        $body .= "Add this email adress to the newsletter: \n";
        $body .= " ".$_REQUEST['Email']." \n";
        mail( $recipient, $subject, $body, "From: $sender" ) or die ("Mail could not be sent.");
        echo "<div>Your email address has been successfully submitted</div>";
    }
?>

無需發布到Newsletter.php,您可以將頁面發布到其自身並在那里處理訂閱。 或Newsletter.php可能沒有頭,然后將您重定向到引薦來源網址,然后您可以在其中顯示訂閱消息。 但這是過時的,任何Ajax后置解決方案肯定會更性感。

暫無
暫無

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

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