Javascript PHP-如何使它成为人们可以';不要更改url中的参数,也不要在刷新页面时再次运行脚本?

Javascript PHP-如何使它成为人们可以';不要更改url中的参数,也不要在刷新页面时再次运行脚本?,javascript,php,jquery,function,Javascript,Php,Jquery,Function,我有一个页面,任何用户在付款后都会被定向到该页面,在该页面中有PHP代码,用于发送确认电子邮件和某些其他任务。 因此,我不希望用户能够刷新该页面,以便再次运行脚本,也不希望他们能够更改url中的参数,例如:www.idk.com?name=eij&age=39 我以前做过这个,但那时我只能用2页 if ( !isset( $_SESSION["origURL"] ) ) $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; 如果用户来自。。。然后运行

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

if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
如果用户来自。。。然后运行脚本,如果他们刷新了脚本,它将不会运行,也无法更改url。 问题是,我制作了第三个页面,url不再显示,代码中没有找到http referer


我真的需要它来工作我希望任何人都能帮助我听起来像是个设计问题

快速修复:

使用
POST
而不是
GET
来防止用户更改参数,并在用户更改参数后立即将其重定向到新页面或没有
POST
参数的页面

您可以查看校验和,以便验证请求是否来自您的站点

这很容易

$checksum = md5(json_encode($array));

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

一种防止在付款后两次加载同一页面的方法如下:

  • 您的客户取消付款并被重定向到您的页面
  • 在这一点上,您应该有一些付款数据,如:付款id、订单id等
  • 在数据库中存储已支付的款项
  • 如果用户试图使用相同的数据再次访问同一页面(例如,在重新发送POST数据之后),您必须检查该付款是否在之前处理过,如果已经处理过,则将其重定向到另一页面

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

有人可以随时将参数更改为他们想要的任何参数,并且他们可以随时请求文档,无论他们想要多少次。你问错问题了。相反,您应该询问如何创建一个令牌来保存只能对其执行一次操作的状态。对于这个问题,您应该亲自尝试并展示您所做的尝试。“所以我不希望用户能够刷新该页面”,然后不要让用户首先进入该页面。