-2

PHPをアップグレードするだけで、非常に単純なサンプルが正しく動作しません

test.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 に答える