if语句和$ _GET

时间:2013-12-02 23:21:34

标签: php if-statement get

我正在使用GET传递一个变量,如果那里什么也没有,我想要一个后备。我一直在使用

$page = $_get;
if $page = ""
 {
  include 'home.php';
 }
else
 {
  include $page;
 }

但它只是打破了我的页面。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

首先$_GET是大写字母。

第二次,您需要说出您想要的value_name$_GET['value_name']

第三次,您需要检查是否已设置value_nameif(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 = ""你指定的;如果您想进行比较,则需要使用=====。此外,您可以使用issetempty等函数,如果变量中存在元素,则会返回bool。

所以,你需要的是这样的东西

include !empty($_GET['param'])?$_GET['param']:'home.php'

? is a ternary operator,是一个恢复的if-else

作为最后一个声明,您不应该直接包含从$ _GET和$ _POST收到的变量。这会给您的系统带来风险。 example on Stack Overflow

答案 3 :(得分:0)

另外,使用isset()检查您是否有输入...

但是,你想要做的是在安全方面有点危险......!