簡體   English   中英

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&age = 39我之前曾做過這項工作,但是那時候我只能使用2頁

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

並使用了if用戶來自...然后運行腳本,如果他們刷新,它將無法運行,也無法更改url。 問題是我用此代碼制作了第3頁,但該網址不再顯示了,沒有找到Nog http Referer。

我真的需要這個來工作,我希望任何人都可以幫助我

付款后避免兩次加載同一頁面的一種方法是:

  • 您的客戶付款,並被重定向到您的頁面
  • 屆時,您應該有一些付款數據,例如:付款ID,訂單ID等。
  • 在數據庫中存儲已付款
  • 如果用戶嘗試使用相同的數據再次訪問同一頁面(例如,在重新發送POST數據之后),則必須檢查該付款之前是否已處理過(如果已經處理過),將其重定向到另一頁

為此,您需要一個唯一的標識符並驗證付款是否合法,這取決於您的付款提供商。

聽起來像是設計問題。

快速修復:

使用POST而不是GET可以防止人們更改參數,並在完成操作后將其重定向到新頁面或沒有POST參數的頁面。

您可以調查校驗和,以便可以驗證請求是否來自您的站點。

它就像

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

只要確保您在數組中有一些秘密元素即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM