只需升级php,非常简单的示例无法正常工作
测试.php
<?php
echo "$query";
?>
当我打电话时
test.php?query=5
它应该显示
5
但我得到的是什么都没有显示,这意味着 $query 是 ''
欢迎您的评论
只需升级php,非常简单的示例无法正常工作
测试.php
<?php
echo "$query";
?>
当我打电话时
test.php?query=5
它应该显示
5
但我得到的是什么都没有显示,这意味着 $query 是 ''
欢迎您的评论
尝试使用
$query = $_GET['query'];
它是一个新的安全功能。它曾经被称为寄存器全局变量。
http://php.net/manual/en/security.globals.php
并非您必须使用 $_GET、$_POST 或使用 $_REQUEST 全局变量来获取此信息。
例如你的代码是
<?php
echo $_GET['query'];
?>
在你之前的 PHP register_globals 指令是打开的,允许你使用 $REQUEST 数组的元素作为全局变量。这就是代码起作用的原因。此功能在 PHP 5.3.0 中已弃用,并在 PHP 5.4.0 中删除:http ://www.php.net/manual/en/ini.core.php#ini.register-globals
不要使用它。直接应用于 $_GET、$_POST 和 $_REQUEST 数组。
您的升级关闭了不安全、可怕和臭register_globals
的 . 尽管您现在必须做这些工作,但您对此会做得更好。
您将不得不更改每个实例
$query
到
$_GET['query']
归档在“安全”下花费的时间。
你需要使用$_GET
通过 URL 参数传递给当前脚本的变量关联数组。
http://www.php.net/manual/en/reserved.variables.get.php
$query = $_GET['query'];