我正在使用GET方法創建一個基於URL中的類別訪問線程的論壇。如果url中沒有參數,我想重定向到一個錯誤頁面,但我希望這是一個可以在我的整個站點上使用的通用代碼片段。如何檢查url中是否存在任何php參數
例如:
的網址通常會包含類別ID:
localhost/myforum/threads.php?categoryid=1
我想它,以便當網址:
localhost/myforum/threads.php
它重定向到一個錯誤頁面,並且這段代碼可在網站上使用
我正在使用GET方法創建一個基於URL中的類別訪問線程的論壇。如果url中沒有參數,我想重定向到一個錯誤頁面,但我希望這是一個可以在我的整個站點上使用的通用代碼片段。如何檢查url中是否存在任何php參數
例如:
的網址通常會包含類別ID:
localhost/myforum/threads.php?categoryid=1
我想它,以便當網址:
localhost/myforum/threads.php
它重定向到一個錯誤頁面,並且這段代碼可在網站上使用
Just :
if (empty(array_diff($_GET, ['']))) {
header("Location: /path/to/error.php");
}
編輯:更新,刪除空值
請在空白調用關閉if條件後添加右括號。 –
@TurboPT錯過了,謝謝。 – 2017-04-24 01:52:09
@PedroLobito它返回true。 – 2017-04-24 03:09:48
嘗試:
$gets = parse_url($url));
if($gets['query'] == "")
{
echo "No GET variables";
}
您可以使用is_set檢查,如果該參數存在這樣的,
isset($_GET)
'isset'不是'is_set',這隻會檢查一個名爲categoryid的參數,而不是其他參數。 – 2017-04-24 01:54:01
最可靠的方法是檢查URL是否包含問號:
if (false !== strpos($_SERVER['REQUEST_URI'], '?')) {
// There is a query string (including cases when it's empty)
}
你的問題有答案。檢查$ _GET數組,或http://php.net/manual/en/function.parse-url.php。 – Peter