刚刚升级php,非常简单的样本无法正常工作
test.php的
<?php
echo "$query";
?>
当我打电话
test.php?query=5
应该显示
5
但我得到的是没有任何显示,这意味着$ query是''
您的评论欢迎
答案 0 :(得分:2)
尝试使用
$query = $_GET['query'];
答案 1 :(得分:2)
它是一个新的安全功能。它曾经被称为寄存器全局变量。
http://php.net/manual/en/security.globals.php
您不必使用$ _GET,$ _POST或使用$ _REQUEST全局变量来获取此信息。
例如你的代码是
<?php
echo $_GET['query'];
?>
答案 2 :(得分:1)
在您以前的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数组。
答案 3 :(得分:1)
你的升级关闭了不安全,可怕和有臭味的register_globals
。尽管你现在必须做的工作,你最好还是这样做。
您必须更改
的每个实例$query
到
$_GET['query']
记录在“安全”下花费的时间。
答案 4 :(得分:0)
您需要使用$_GET
通过传递给当前脚本的关联变量数组 网址参数。
http://www.php.net/manual/en/reserved.variables.get.php
$query = $_GET['query'];