【发布时间】:2013-10-23 23:39:30
【问题描述】:
所以基本上,我正在创建一个超小型的批量电子邮件应用程序,供个人使用。
它有一个非常小的表单,仅包含一个 CSV 文件的上传按钮和一个电子邮件主题的下拉列表。每封邮件都取自 CSV 文件,保存在一个数组中,并通过一个循环进行处理和发送。
我只在设置了 $_POST 'submit' 时才运行它。虽然,在页面重新加载/刷新时,由于 $_POST 变量仍然设置/存在,所有电子邮件都在没有按下提交按钮的情况下再次发送。
我会在这里发布我所有的代码,虽然它有点大。如果迫切需要,我可以将其缩短并在此处发布。
有没有办法解决这个问题?
【问题讨论】:
-
Google for
nonce's:基本上是一个表单中的隐藏令牌,只能使用一次,并且不会再次执行该操作,因为您的@ 987654322@ 不再有效。所以:创建随机值,添加到会话中,添加为隐藏输入,接收时:在会话中查找它,如果找到则将其删除并采取行动,如果未找到:不要采取行动。 -
@Wrikken - 你能举个例子吗?当前未使用会话。
-
@JohnConde - 不使用 C#,所以这个问题是完全不同的,并要求解决(示例)PHP 中的
$_POST变量。 -
发布/重定向/获取与您使用的语言无关。点击我答案中的链接。
-
@fizzix 请参阅我的答案中的“替代方法一”,了解如何使用一次使用的随机数/数字的示例。这里我使用“sha1(rand())”来创建“数字”,它实际上是一个大的随机十六进制字符串,确保你永远不会得到相同的数字,除非你每秒运行数百万次数百年.