2017-04-24 133 views
-3

我正在使用GET方法創建一個基於URL中的類別訪問線程的論壇。如果url中沒有參數,我想重定向到一個錯誤頁面,但我希望這是一個可以在我的整個站點上使用的通用代碼片段。如何檢查url中是否存在任何php參數

例如:

的網址通常會包含類別ID:

localhost/myforum/threads.php?categoryid=1 

我想它,以便當網址:

localhost/myforum/threads.php 

它重定向到一個錯誤頁面,並且這段代碼可在網站上使用

+0

你的問題有答案。檢查$ _GET數組,或http://php.net/manual/en/function.parse-url.php。 – Peter

回答

1

Just :

if (empty(array_diff($_GET, ['']))) { 
    header("Location: /path/to/error.php"); 
} 

編輯:更新,刪除空值

+0

請在空白調用關閉if條件後添加右括號。 –

+0

@TurboPT錯過了,謝謝。 – 2017-04-24 01:52:09

+0

@PedroLobito它返回true。 – 2017-04-24 03:09:48

0

嘗試:

$gets = parse_url($url)); 
if($gets['query'] == "") 
{ 
    echo "No GET variables"; 
} 
0

您可以使用is_set檢查,如果該參數存在這樣的,

isset($_GET) 
+1

'isset'不是'is_set',這隻會檢查一個名爲categoryid的參數,而不是其他參數。 – 2017-04-24 01:54:01

0

最可靠的方法是檢查URL是否包含問號:

if (false !== strpos($_SERVER['REQUEST_URI'], '?')) { 
    // There is a query string (including cases when it's empty) 
}