我有两个简单的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