我想清除我的URL。php抓取URL中的所有GET變量,並將它們作爲POST變量發送回相同的URL
當別人打我的網站,他們通常來是這樣的:
www.site.com/webpage/?var1=1 & VAR2 = 2 & VAR3 = 3
是有可能抓住所有這些GET變量,將它們作爲POST發送,重新加載頁面,抓取所有新發送的POST變量來清理url?
所以要訪問該頁面的用戶,到底它只是看起來像www.site.com/webpage/
我想清除我的URL。php抓取URL中的所有GET變量,並將它們作爲POST變量發送回相同的URL
當別人打我的網站,他們通常來是這樣的:
www.site.com/webpage/?var1=1 & VAR2 = 2 & VAR3 = 3
是有可能抓住所有這些GET變量,將它們作爲POST發送,重新加載頁面,抓取所有新發送的POST變量來清理url?
所以要訪問該頁面的用戶,到底它只是看起來像www.site.com/webpage/
將GET
參數保存到會話變量中,並重定向回到沒有任何參數的URL。在沒有參數的情況下調用時,從會話中獲取參數。
session_start();
if (empty($_GET) && isset($_SESSION['_GET'])) {
// This is the page after the redirect, copy the session variable back into $_GET
$_GET = $_SESSION['_GET'];
} elseif (!empty($_GET)) {
// When called with parameters, copy $_GET into a session variable
$_SESSION['_GET'] = $_GET
// and then redirect to the page with no parameters
header("Location: /webpage/");
exit();
}
unset($_SESSION['_GET']); // So it's only used once
// Use $_GET in the rest of the script as normal
不,你不能讓瀏覽器發送任何重定向代碼POST請求 - 這將被需要。
第二件事:發送POST請求將禁用緩存,並不斷激怒使用瀏覽器後退按鈕的用戶,「是否要再次發送該數據」。
最好的辦法是避免將不喜歡的東西放入URL(也稱爲URL設計)中,但除了不喜歡之外,該URL與其他任何東西一樣好或壞。
你可以使用捲曲。 – CodeGodie
爲什麼你不使用.htaccess重寫URL? – nomistic
另一種方法是將這些變量設置爲會話 – nomistic