簡體   English   中英

PHP從url中刪除Get請求

[英]PHP Remove Get requests from url

我正在研究一個投票系統,該系統通過GET請求來了解必須更新哪個帖子ID。 但是當投票完成后,我的網址中仍然存在獲取請求(/?vote_up = 123),因此如果用戶刷新其頁面,則將再次設置投票。 這不應該發生。

投票結束后,我現在已經有了這個,但這不起作用。

$_SERVER['REQUEST_URI'] = strtok( $_SERVER['REQUEST_URI'], '?' );

誰能幫我這個?

首先,投票操作不應該依賴於GET請求,根據定義,GET請求應該檢索信息而不是設置信息。

也就是說,您應該使用PUT請求(或POST請求使事情變得更簡單),並且您的投票不應直接訪問后端URL,因為即使它是POST請求,如果用戶重新加載,它也將重新觸發。

我建議您在前端使用ajax投票系統,它使用不影響當前用戶位置URL的異步請求將數據POST或PUT到PHP后端。

與此同時,一個緊急解決方案是使用POST請求投票,然后登陸一個URL,將用戶重定向到他們來自的任何地方(假設您可以從多個頁面投票)。 在該過程的最后,用戶的位置不是監聽POST的位置,而是他被重定向到的位置,因此刷新或重新加載對他來說無害。

$new_url = preg_replace('/&?return=[^&]*/', '', $old_url);

我認為為此你必須在設置投票后將用戶重定向到同一頁面。重定向url將由parse url函數設置。

暫無
暫無

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

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