PHP自动“ GET”变量
-
06-07-2019 - |
题
我正在为我的公司设计一个新网站,我正在尝试实现交换机导航,这是我过去在我所有网站上使用的。
<?php
switch($x) {
default:
include("inc/main.php");
break;
case "products":
include("inc/products.php");
break;
}
?>
出于某种原因,当我去index.php?x =产品没有任何反应时,它仍然显示inc / main.php,换句话说它没有从URL中检测到X变量。这与全局变量有关吗?
解决方案
是的,您的PHP配置正确已关闭 register_globals
,因为这是非常不安全的。
刚刚提出:
$x = 是的,您的PHP配置正确已关闭 register_globals
,因为这是非常不安全的。
刚刚提出:
<*>
位于脚本的顶部。
如果您特别希望这对 GET
HTTP方法有效,您也可以使用 $ _ GET
。我见过有些人声称 $ _ REQUEST
在某种程度上是不安全的,但没有证据支持这一点。
REQUEST['x']
位于脚本的顶部。
如果您特别希望这对 GET
HTTP方法有效,您也可以使用 $ _ GET
。我见过有些人声称 $ _ REQUEST
在某种程度上是不安全的,但没有证据支持这一点。
其他提示
您以前的虚拟主机似乎都使用 register_globals ,您的代码依赖于此。这是一个危险设置,在PHP 6.0中被正确删除了!请改用开关($ _ GET ['x']){
。
您应该使用$ _GET来读出这些变量。有一个名为 register_globals 的弃用函数,但我肯定不会建议使用它,因为它是一个潜在的安全风险。
您可以使用 http://php.net/manual/es/function.extract .php 如果你想要提取变量,但请记住,这允许任何用户在你的脚本中设置他们想要的内容变量,这使得它与使用register_globals一样不安全
不隶属于 StackOverflow