我正在使用IIS 6上托管的Classic ASP应用程序。用户可以在Enter_details.asp页面中输入详细信息,然后单击发送电子邮件按钮以接收电子邮件确认。单击“发送电子邮件”按钮后,页面将重定向到email.asp页面并发送电子邮件。
如果用户刷新email.asp页面,则会发送包含相同详细信息的重复电子邮件。如何检查ASP页面是否被重定向或刷新并避免重复的电子邮件?
Page1:Enter_Details.asp page
<form action="email.asp" method="POST">
<input type="Submit" name="Submitbutton" value="Send E-Mail">
第2页:Email.asp
code to send email goes here.
我想要的是提醒用户是否已发送电子邮件。
如何检查ASP页面是重定向还是刷新?
答案 0 :(得分:2)
用户最终的页面不应该是实际发送电子邮件的页面。
在您的情况下,Enter_details.asp
将数据提交给email.asp
,其中发送电子邮件,和告诉用户电子邮件已发送。因此,如果重新加载,则会重复这两个操作。
如果您将电子邮件功能保留在email.asp
中,并且完成后,请Response.Redirect
到新页面emailConfirmation.asp
,该页面只会告诉用户该电子邮件是否包含已成功发送(您可以通过Querystring或来自email.asp
的会话传递成功标志,以及所需的任何其他详细信息)。
然后,如果重新加载emailConfirmation.asp
,则不会发送重复的电子邮件。