-2

只需升级php,非常简单的示例无法正常工作

测试.php

 <?php 

 echo "$query";

 ?> 

当我打电话时

test.php?query=5

它应该显示

5

但我得到的是什么都没有显示,这意味着 $query 是 ''

欢迎您的评论

4

5 回答 5

2

尝试使用

$query = $_GET['query'];
于 2013-08-05T20:58:23.630 回答
2

它是一个新的安全功能。它曾经被称为寄存器全局变量。

http://php.net/manual/en/security.globals.php

并非您必须使用 $_GET、$_POST 或使用 $_REQUEST 全局变量来获取此信息。

例如你的代码是

 <?php 

 echo $_GET['query'];

 ?> 
于 2013-08-05T21:01:23.507 回答
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 数组。

PHP 中的 register_globals 是什么?

于 2013-08-05T21:03:13.317 回答
1

您的升级关闭了不安全、可怕和臭register_globals的 . 尽管您现在必须做这些工作,但您对此会做得更好。

您将不得不更改每个实例

$query

$_GET['query']

归档在“安全”下花费的时间。

于 2013-08-05T21:06:26.513 回答
0

你需要使用$_GET

通过 URL 参数传递给当前脚本的变量关联数组。

http://www.php.net/manual/en/reserved.variables.get.php

$query = $_GET['query'];
于 2013-08-05T21:00:23.643 回答