在我的网页上,我有2个选项,可以创建新列表或编辑现有列表。
如果用户希望创建新列表,则会出现带有textarea的新页面。
如果用户希望编辑现有列表,则显示列表,用户可以选择列表。选择列表后,用户将被重定向到新列表页面,其中已填写文本区域内容。
我在新列表页面中有这个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功能使用)?
答案 0 :(得分:2)
使用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 }
答案 1 :(得分:1)
首先你必须写/检查
print_r($_GET)
如果您只想查看它,可以使用
if(isset($_GET["items"]){
//it have a value
}
Plus:如果使用unset()取消设置变量,则不再设置该变量。如果测试已设置为NULL的变量,则isset()将返回FALSE。另请注意,NULL字节(" \ 0")不等同于PHP NULL常量。
答案 2 :(得分:-1)
你想要这个。您需要检查是否设置了$_GET['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
}