5

古い .php3 コードの変換に取り組んでいます。古いボックスで古い .php3 バージョンを実行している間、すべて正常に動作します。書き換えボタンをクリックすると書き換えifブロックに入ります。

.php3

<?
if($rewrite) {
//here is therewrite code
}

<input class="smButton" type="submit" name="rewrite" value="Save Changes"> 

.php

<?php
if($rewrite) {
//here is therewrite code
}

<input class="smButton" type="submit" name="rewrite" value="Save Changes">

私が行方不明であることは明らかですか?.php3 バージョンの何かが書き換え変数を設定しますが、新しいバージョンでは、手動で .php ファイルの先頭に設定しない限り設定されません。

うまくいけば、これで十分なコードです。2つのバージョン間でこのような異なる動作を引き起こす原因は何だろうと思っています。

4

2 に答える 2

11

register_globalsはおそらく PHP 3 ではオンで、新しい PHP バージョンではオフになっています (そうあるべきです)。

于 2013-08-06T19:07:20.033 に答える
5

新しい PHP バージョンはregister_globalsを有効にしないため、 $rewritebyを置き換える必要があります。$_POST['rewrite']$_POST['x']$_GET['x']$_REQUEST['x']$x

これは、低品質の PHP コードを使用している場合 (何年も保守していない場合に発生する可能性があります) 、一連のセキュリティ ホールにつながります。

于 2013-08-06T19:12:48.320 に答える