簡體   English   中英

沒有數據發送時如何處理GET變量

[英]How can I handle a GET variable when there is no data being sent

在我的網頁上,我有2個選項,用於創建新列表或編輯現有列表。

如果用戶希望創建一個新列表,則會出現一個帶有文本區域的新頁面。

如果用戶希望編輯現有列表,則顯示列表,然后用戶可以選擇一個列表。 選擇列表后,用戶將被重定向到新列表頁面,其中的文本區域內容已被填充。

我在新列表頁面中有以下if語句,可以接受來自編輯列表頁面的輸入:

$items = $_GET['items'];
if ($items){
    //get the stuff from the db and populate the text area
}
else {
    //a new empty text area
}

問題是,當我嘗試直接從“創建新列表”選項訪問此頁面時,收到一條錯誤消息,指出items是未定義的變量。 這是有道理的,因為原始頁面沒有發送任何數據,因此沒有任何內容。

我該如何解決? 我可以將原始頁面設置為發送items的空值,但我想避免更改原始頁面。 是否有一個選項可以檢查請求的來源,或者是否只有在可以接收到變量的情況下才激活變量(可由GET功能使用)?

使用isset()

isset —確定是否設置了變量並且不為NULL

if (isset($_GET['items'])){
    //get the stuff from the db and populate the text area
    $items = $_GET['items'];
}

@Eugen建議(在分配變量之前檢查:

$items = isset($_GET['items']) ? $_GET['items'] : null; 
if($items) { // bla bla }

首先,您必須寫/檢查

print_r($_GET)

如果只想檢查一下就可以使用

if(isset($_GET["items"]){
      //it have a value
}

加:如果已使用unset()取消設置了變量,則將不再設置該變量。 如果測試已設置為NULL的變量,則isset()將返回FALSE。 另請注意,NULL字節(“ \\ 0”)不等於PHP NULL常量。

你要這個。 您需要檢查是否設置了$_GET['items'] ,然后可以將$items設置$items結果。

if (isset($_GET['items']) && $items = $_GET['items']){
    //get the stuff from the db and populate the text area
}
else {
    //a new empty text area
}

暫無
暫無

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

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