php if(isset($#u GET[';something';])不起作用

php if(isset($#u GET[';something';])不起作用,php,isset,Php,Isset,我尽了最大的努力想知道如何根据index.php?ref=[link]重定向某人,搜索了互联网。。。我想不出来,这是我的代码: if(isset($_GET['ref'])){ header("Location: /" . $_GET['ref']); }else if(empty($_GET['ref'])){ header('Location: /welcome/'); }else{ header('Location: /welcome/'); } 即使设置了?re

我尽了最大的努力想知道如何根据
index.php?ref=[link]
重定向某人,搜索了互联网。。。我想不出来,这是我的代码:

if(isset($_GET['ref'])){
    header("Location: /" . $_GET['ref']);
}else if(empty($_GET['ref'])){
    header('Location: /welcome/');
}else{
    header('Location: /welcome/');
}
即使设置了
?ref
中的值,如果
一个,它也始终执行
else。

任何人都可以提供帮助?

我的快照-
isset
确定变量是否已设置且不为空。因此,如果您的url只包含
?ref
(而不是
?ref=子页面
),则满足条件,但您将被重定向到
标题(“位置:/”.NULL)

尝试使用
!空()
而不是
isset()


顺便说一句:始终在
标题(“位置:…”)
之后添加
退出

如果未设置,则始终为空。。现在,我不知道为什么一开始就没有设定。编辑:详细地说,你的else本身是无用的。例如,当我将它设置为?ref=websites时,它会执行我得到的else if one。我不知道为什么会这样。我的意思是你的
else
部分永远不会被访问。你在使用任何框架吗?有请求包装器吗?你百分之百确定吗,这个带有?ref的url没有打字错误?您能为我们转储
$\u GET
吗?您是否100%确定您正在查看正确的文件?:)如果是,您确定已保存对它的更改吗?你能给我们看整个文件而不是那几行吗?注意:如果url只是
?ref
,变量将是一个空字符串(
string(0)”
),而不是
null
,那么
isset($\u GET['ref'])
将是
true
,重定向将是
头(“位置:/”)。(最后,将null或空字符串附加到字符串会得到相同的结果,无论如何xD)@FirstOne是的,这是真的<在本例中,code>NULL
被强制转换为空字符串,并与字符串的其余部分合并。我只是不确定
位置:/
是否是您要去的地方。我将尝试该解决方案。请您从ref
设置为设置($\u GET['ref'])
的那一刻起为我们转储$\u GET好吗?尝试
var\u导出($\u GET)我想到了另一种方法,它成功了,谢谢大家!