PHP-如何使它成为有人不能更改网址中的参数,并在页面刷新时不再运行脚本?

时间:2013-12-05 20:03:21

标签: javascript php jquery function

我有一个页面,任何用户在付款后都会被定向到该页面,并且在该页面中有PHP代码可以发送确认电子邮件和某些其他任务。 所以我不希望用户能够刷新该页面,以便再次运行脚本,我也不希望他们能够更改URL中的参数,例如:www.idk.com?name = eij& ;年龄= 39 我之前有过这个工作,但那时我只能用2页

if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

并使用if用户来自...然后运行脚本,如果他们刷新它将无法运行,也无法更改网址。 问题是我做了第3页,网址没有显示出来,这段代码找到了nog http referer。

我真的需要这个工作,我希望有人能帮助我

2 个答案:

答案 0 :(得分:1)

付款后阻止加载同一页面的一种方法如下:

  • 您的客户付款并重定向到您的页面
  • 此时您应该有一些付款数据,例如:付款ID,订单ID等......
  • 在数据库中存储已付款
  • 如果用户尝试使用相同的数据再次访问同一页面(例如,重新发送POST数据后),您必须先检查该付款是否已处理,如果已经处理,则将其重定向到另一页面

为此,您需要一个唯一标识符,并验证付款是否合法,具体取决于您的付款服务提供商。

答案 1 :(得分:0)

听起来像是一个设计问题。

快速修复:

使用POST而不是GET来阻止人们更改参数并在新页面完成后重定向,或者没有POST参数。

您可以查看校验和,以便验证请求来自您的网站。

就像

一样简单
$checksum = md5(json_encode($array));

确保数组中有一些秘密元素。