我有兩個簡單的HTML表單按鈕,現在調用PHP函數發送電子郵件。除了一件事以外,一切正常。如果點擊其中一個按鈕發送報告,然後刷新頁面,則該功能似乎再次被調用,並且電子郵件很好地再次出現,用戶使用瀏覽器刷新按鈕刷新頁面。PHP按鈕調用函數將導致函數重複刷新頁面
如果頁面刷新了,那麼電子郵件會在點擊最後一個按鈕時再次熄滅。所以,如果我點擊按鈕1然後刷新頁面,我會得到按鈕1的兩個報告。如果我點擊按鈕#1,然後點擊按鈕#2,只有第二個報告會出去。如果我點擊按鈕#2和#1,則只有報告#1會再次出現。
因此,無論點擊多少個按鈕,刷新頁面將導致最後一次按鈕點擊(僅重複)。嘗試取消設置請求參數(在下面的代碼中)對由頁面刷新引起的重複無效。
我不明白爲什麼(在頁面刷新上)頁面看到最後一次設置的按鈕點擊,以及爲什麼unset命令不起作用。
感謝您的任何幫助。
if(isset($_REQUEST['email_this_weeks_report'])) {
unset($_REQUEST['email_last_weeks_report']);
#send email now email code for this week
}
if(isset($_REQUEST['email_last_weeks_report'])) {
unset($_REQUEST['email_last_weeks_report']);
#send email now email code for last week
}
<form>
<input class="ui-button ui-widget ui-corner-all" type="submit"
name="email_this_weeks_report" value="Email This Weeks Report Now" />
</form>
<form>
<input class="ui-button ui-widget ui-corner-all" type="submit"
name="email_last_weeks_report" value="Email Last Weeks Report Now" />
</form>
你在兩個if條件中都設置了相同的東西 –
_「我不明白爲什麼(在頁面刷新時)頁面看到最後一個按鈕設置爲」_「 - 因爲瀏覽器確切同樣的請求再次...這是什麼刷新_means_。 _「以及爲什麼未設置的命令不起作用」_ - 因爲開始時是無稽之談。如果您發送表單的時間是_first_,那麼它會執行同樣的操作 - 所以如果_did_按照您的想法工作,它會從一開始就破壞您的功能。您正試圖在_identical_兩個請求之間_differentiate_ ...當然不能工作。 – CBroe