【问题标题】:Classic ASP page - Detect if page is refreshed or redirected from another page经典 ASP 页面 - 检测页面是否刷新或从另一个页面重定向
【发布时间】:2014-02-18 22:34:10
【问题描述】:

我正在开发托管在 IIS 6 上的经典 ASP 应用程序。用户可以在 Enter_details.asp 页面中输入详细信息,然后单击发送电子邮件按钮以接收电子邮件确认。点击发送电子邮件按钮后,页面被重定向到 email.asp 页面并发送电子邮件。

如果用户刷新 email.asp 页面,则会发送一封包含相同详细信息的重复电子邮件。如何检查 ASP 页面是否被重定向或刷新并避免重复电子邮件?

Page1:Enter_Details.asp 页面

<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 页面是否被重定向或刷新?

【问题讨论】:

  • 完成此任务的一个简单逻辑是在单击确定按钮后向用户显示一条弹出消息(只有确定按钮)“邮件发送成功........”,将用户从email.asp 重定向到主页或收件箱页面

标签: asp-classic page-refresh


【解决方案1】:

用户最终访问的页面不应该是实际发送电子邮件的页面。

在您的情况下,Enter_details.asp 将数据提交给email.asp,后者负责发送电子邮件,并且告诉用户电子邮件已发送。因此,如果重新加载,这两个动作都会重复。

如果您将电子邮件功能留在email.asp 中的位置,并且完成后,请执行Response.Redirect 到新页面emailConfirmation.asp,它只会告诉用户电子邮件是否已成功发送(您可以通过 email.asp 的 Querystring 或 Session 传递成功标志以及所需的任何其他详细信息)。

然后,如果emailConfirmation.asp 被重新加载,则不会发送重复的电子邮件。

【讨论】:

  • 是的,他说的是:不要将用户留在实际发送内容的页面上,因为他们做他们不会做的事情应该的。 (实际上,您可以使用单个 ASP 文件执行此操作;重要的是执行 Response.Redirect 以便表单不会再次提交。)
猜你喜欢
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 2015-08-14
  • 2021-05-03
  • 2012-06-12
相关资源
最近更新 更多