[英]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.