PHP-如何让别人可以';不要更改url中的参数,也不要在刷新页面时再次运行脚本


PHP- How to make it so someone can't change parameters in url and dont run script again on refresh on a page?

我有一个页面,任何用户在付款后都可以直接访问该页面,该页面中有发送确认电子邮件和某些其他任务的PHP代码。因此,我不希望用户能够刷新该页面,以便再次运行脚本,也不希望他们能够更改url中的参数,例如:www.idk.com?name=eij&年龄=39我以前有这个工作,但那是在只有2页的时候,我可以使用

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

并使用if用户来自。。。然后运行脚本,如果他们刷新了,它就不会运行,也无法更改url。问题是,我做了一个第三个页面,url不再显示了,这个代码找到了noghttp-referer。

我真的需要这个来工作,我希望任何人都能帮助我

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

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

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

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

快速解决方案:

使用POST而不是GET可以防止用户更改参数,并在更改参数后立即将其重定向到不带POST参数的新页面或相同页面。

你可以查看校验和,这样你就可以验证来自你的网站的请求。

它和一样简单

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

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