我正在使用GET传递一个变量,如果没有任何内容,我希望回退。我一直在使用
$page = $_get;
if $page = ""
{
include 'home.php';
}
else
{
include $page;
}
但它只是打破了我的页面。有什么想法吗?
第一个,$_GET
是大写的。
第二个,您需要说出您想要哪个value_name
。$_GET['value_name']
第三,您需要检查是否已设置value_name
。if(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()
检查是否有输入。。。
但是,是的,你想做的事情在安全方面有点危险!