我正在使用GET传递一个变量,如果那里什么也没有,我想要一个后备。我一直在使用
$page = $_get;
if $page = ""
{
include 'home.php';
}
else
{
include $page;
}
但它只是打破了我的页面。有什么想法吗?
答案 0 :(得分:3)
首先,$_GET
是大写字母。
第二次,您需要说出您想要的value_name
。 $_GET['value_name']
第三次,您需要检查是否已设置value_name
。 if(isset($_GET['value_name']))
Forth ,最重要的是:从不这样做!永远不要根据网址或用户输入中给出的内容包含文件。您将成为hacked!而是将给定值与允许的文件名数组匹配,或使用switch
。
答案 1 :(得分:0)
可能只是错过了if语句中的parens。此外,您还需要指定GET参数。
$page = $_GET['param'];
if ($page == "") {
include 'home.php';
} else {
include $page;
}
答案 2 :(得分:0)
首先,$_GET
是一个关联数组。所以你应该检查一下,或者不要空。
另一方面,这里是$page = ""
你指定的;如果您想进行比较,则需要使用==
或===
。此外,您可以使用isset或empty等函数,如果变量中存在元素,则会返回bool。
所以,你需要的是这样的东西
include !empty($_GET['param'])?$_GET['param']:'home.php'
? is a ternary operator,是一个恢复的if-else
作为最后一个声明,您不应该直接包含从$ _GET和$ _POST收到的变量。这会给您的系统带来风险。 example on Stack Overflow
答案 3 :(得分:0)
另外,使用isset()
检查您是否有输入...
但是,你想要做的是在安全方面有点危险......!