8

奇妙な問題があります。最近、アプリケーションをローカルの xampp インストールから SUSE Enterprise Server 11 に移行しました。すべてが機能していますが、この 1 つのことが頭を悩ませ、解決策が見つかりません。

次の構文を使用して、GET または POST で配列を渡す場合:

search_dggs.php?latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16

latmin の最初の要素のみを取得します。これは、配列の受け渡しが必要な他の場所でエラーが発生した後に試した単純な例にすぎないことに注意してください。

print_r($_SERVER["QUERY_STRING"]); 

出力

latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16

しかし

print_r($_GET);

与える

Array
(
    [latmin] => Array
        (
            [0] => 52.447529
        )

    [lonmin] => 17.56
    [lonmax] => 22.16
)

すべての POST リクエストでまったく同じことが起こります。

PHP バージョン 5.3.8 を使用しています。問題はサーバーの構成にあると思いますが、この問題については何も見つかりませんでした。

コメントへの対応:

任意の数の変数を送信した場合も同じことが起こります。

parse_str($_SERVER["QUERY_STRING"]);
print_r($latmin);

与える

Array
(
    [0] => 52.447529
)

php.ini はここにあります

ここで実際の動作を確認できるはずです

このphpファイルのソースファイルは

<?php

    $test="latmin[]=52.447529&latmin[]=22&lonmin=23&lonmax=22.16";
    parse_str($test);
    print_r($latmin);
    phpinfo();

?>
4

6 に答える 6

4

私のサーバーでテストしましたが、問題なく動作します。

_GET["latmin"]  

Array
(
    [0] => 52.447529
    [1] => 22
)

[データ処理]セクションでphp.iniを調べて、値を確認します。すべてをデフォルトにリセットし、Webサーバーを再起動して、再試行してください。 PHP.iniデータ処理のデフォルト

于 2012-04-09T17:26:23.357 に答える
2

リンクの例は、Array ( [0] => 52.447529 )変数が渡されなくても毎回出力されます。したがって、このコードにリンクされていないコードに問題があるようです: `

$test="latmin[]=52.447529&latmin[]=22&lonmin=23&lonmax=22.16";
parse_str($test);
print_r($latmin);
phpinfo();

`

于 2012-04-12T08:21:22.283 に答える
0

および/または$_REQUESTの代わりに試してください$_GET$_POST

于 2012-04-15T18:03:10.007 に答える
0

このバグの最も可能性の高い原因は、誰かが php.ini で "max_input_vars" を 0 または 1 に設定したことです。「max_input_vars」のデフォルトは 1000 で、php.ini で上書きできます。

最近、別の原因で同じ動作に遭遇しました。「max_input_vars」を部分的に実装した PHP 5.2 インストールにバックポートされたセキュリティ パッチですが、いくつかの重要なビットが欠落していました。原因は違えど、結果は同じ。

関連する php ソース コードは、main/php_variables.c にあります。php 5.3.8 では、ゴムは php_register_variable_ex 関数で道にぶつかっていました。

「foo=bar&asdf[]=1&asdf[]=2」のような文字列を解析するときにphpが使用するSAPI「treat_data」フックがあります-別のSAPIには、これの独自の実装がある場合があります。

于 2012-05-03T23:58:10.317 に答える
0

うーん..多分それはその重大な脆弱性バグに何らかの形で関連していますか? XAMPP の PHP バージョンは本番環境と同じですか? 投稿するデータが多すぎると、同様の問題が発生する可能性があることはわかっています (ファイル/投稿のサイズとパラメーターの量の両方に関して)。5.3.10 へのアップグレードはどうですか?

于 2012-04-11T10:08:22.397 に答える