2013-08-06 18 views
5

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

.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つのバージョンの間でこのような異なる動作を引き起こす可能性があると思っています。

答えて

11

register_globalsは、あなたがあなたの新しいPHPのバージョンが翻訳しregister_globalsを、活性化しないので、$_POST['rewrite']によって$rewriteを交換する必要が(それがあるべきよう)あなたの新しいPHPのバージョンでPHP 3用とオフおそらく上

+0

犯人がいる!これはトリックでした。値をオフからオンに変更するだけです。今後誰かに素早く参照されるように、この値はphp.ini設定ファイルにあります。私の個人的には/etc/php/php.iniにありました。 – sealz

+3

この冗長な古い機能を有効にする代わりに、コードを確認してください:-)。この動作を維持するのはちょっと危険です(例えば、偶然による変数のオーバーライドなど) –

+0

@Maxime Lorant常に良いアイデアです。バージョンの違いがゆっくりと出てきたので、私はそれを私のtodoリストに載せます。 – sealz

5

ですすべての$xから$_POST['x']$_GET['x'](より一般的に$_REQUEST['x']))

あなたは年以来、それを維持していない場合場合することができ、低品質のPHPコードを()がある場合、これは、bunch of security holesにつながります。

関連する問題