if statement and $_GET


if statement and $_GET

我正在使用GET传递一个变量,如果没有任何内容,我希望回退。我一直在使用

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

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

第一个$_GET是大写的。

第二个,您需要说出您想要哪个value_name$_GET['value_name']

第三,您需要检查是否已设置value_nameif(isset($_GET['value_name']))

第四个,也是最重要的:永远不要这样做!永远不要包含基于url中给定内容或其他用户输入的文件。您被黑客入侵!相反,您可以将给定的值与允许的文件名数组相匹配,或者使用switch

可能只是缺少if语句上的parens。此外,您还需要指定GET参数。

$page = $_GET['param'];
if ($page == "") {
    include 'home.php';
} else {
    include $page;
}

首先,$_GET是一个关联数组。所以你应该对照一些东西,或者不要空着。

另一方面,这里是您正在分配的$page = "";如果要进行比较,则需要使用=====。此外,您可以使用isset或empty等函数,如果变量中有元素或没有元素,这些函数将返回bool。

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

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

是一个三元运算符,是一个恢复的if else

作为最后一个声明,您不应该直接包含从$_GET和$_POST接收的变量。这会给你的系统带来风险。堆栈溢出示例

此外,使用isset()检查是否有输入。。。

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