-2

で変更するレガシー コードがいくつかあります。PHP5.4スクリプトはもともと で作成されていPHP4.0ます。

ログインしようとすると問題が発生します。 HTTP_POST_VARSは認識されず、これらの変数postと変数は、30 ~ 40 のスクリプト ファイルに相当するスクリプト全体にget変更する必要があり$_POSTます。$_GET

$_POSTすべての長い変数を短い種類に変更する方法について誰かがアイデアを共有できますか?

ファイルでオンにしようとしましたregister_long_arraysphp.ini、既にオンになっていて、他に何をすべきかわかりません。

4

2 に答える 2

3

register_long_arraysディレクティブはもう存在しません:

このディレクティブは PHP 5.0.0 で利用可能になりました。[...] この機能は PHP 5.3.0 で非推奨となり、PHP 5.4.0 で削除されました。

そこにある適切なエディターは、「ファイルで置換」メニュー項目を提供する必要があります (通常、「編集」、「検索」、または同様の場所にあります)。HTTP_POST_VARSこれで、あいまいさをあまり引き起こさない長い名前であるため、2 分のタスクになるはずです。

phpDesigner を使用しているようです。彼らのサイトでスクリーンショットを見つけることができます(「高度な検索と置換」までスクロールダウンします)。


編集:テキスト エディターにパニックを起こしているようです。別の方法として、欠落している変数を自分で作成することもできます。

$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_POST_FILES = &$_FILES;
$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_SESSION_VARS = &$_SESSION;
$HTTP_ENV_VARS = &$_ENV;
$HTTP_COOKIE_VARS = &$_COOKIE;

このコードをアプリケーションのメイン設定ファイルの上に置くことができます。そうしないと、検索と置換が明らかにオプションではないことを考えると、それらを新しい*.phpファイルに入れて魔法のようにロードする必要があります。 auto_prepend_file PHP ディレクティブを使用)。

参照を割り当てるために使用していることに注意してください。これにより、ペアになった変数が同期されたままになります (これは、実際に機能&させるために特に重要です)。$HTTP_SESSION_VARS

もちろん、$HTTP_...変数はスーパーグローバルではありません。コードをよく理解していないと、微妙なバグに直面する可能性があります。

于 2013-11-07T15:20:17.723 に答える
0
`$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_POST_FILES = &$_FILES;
$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_SESSION_VARS = &$_SESSION;
$HTTP_COOKIE_VARS = &$_COOKIE;`

データベースの有効な機能が開始される前に、それらをすべてconfig(設定)ファイルに入れ、フォルダーに属するすべてのスクリプトに適用します。

于 2013-11-12T14:55:27.287 に答える