亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在刷新時停止 phpmailer 多次重新發送?(并顯示錯誤信息)

如何在刷新時停止 phpmailer 多次重新發送?(并顯示錯誤信息)

PHP
偶然的你 2022-10-14 14:37:09
當我刷新頁面時,phpmailer 總是重新發送電子郵件。我做了什么?用過 header("Location: home.php");但是我怎樣才能對 home.php 進行定位并顯示我的錯誤消息 $error = "Thank you for message!";if($mail->send()){    header("Location: home.php");    $error = "Thank you for message!";} else {    $error .= "Error {$mail->ErrorInfo}";}問題是當我做標題時它沒有顯示錯誤信息......<div class="text-center impact"><?php echo $error; ?></div>
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

您可以傳遞 aGET-parameter以便在頁面重新加載時檢查它。試試這個代碼示例:


if($mail->send()){

    header("Location: home.php?success");

} else {

    $error .= "Error {$mail->ErrorInfo}";

在您的頁面上:


<div class="text-center impact">

<?php echo isset($_GET['success']) ? "Thank you for message!" : $error; ?>

</div>


查看完整回答
反對 回復 2022-10-14
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

你沒有$error在你的頁面之間傳遞變量,所以當你回顯它時,它沒有被定義,你不會得到任何輸出。您需要通過 URL 查詢參數傳遞它:


header("Location: home.php?error=" . rawurlencode($error));

然后在該頁面上檢索它:


echo $_GET['error'];

或者通過會話變量傳遞它(可能是更好的選擇):


$_SESSION['errors'] = $error;

header("Location: home.php");

接著:


echo $_SESSION['error'];


查看完整回答
反對 回復 2022-10-14
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

您不會看到它,因為您的瀏覽器會在您看到它之前立即重定向。

超級簡單的解決方案是重定向到: header("Location: send-confirmation.php");

帶有消息已發送的信息。當然,您可以做更高級的解決方案并將 apropiate 參數傳遞給主頁或在您的 phpmailer 頁面上使用 cookie/session 以避免重復發送。


查看完整回答
反對 回復 2022-10-14
  • 3 回答
  • 0 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號