php3和php变量差异

时间:2013-08-06 19:06:10

标签: php

我正在努力转换一些古老的.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 个答案:

答案 0 :(得分:11)

register_globals可能适用于PHP 3,并且在您的较新PHP版本中可能会出现(应该是这样)

答案 1 :(得分:5)

您必须将$rewrite替换为$_POST['rewrite'],因为您的新PHP版本不会激活register_globals,它会翻译每$_POST['x']$_GET['x'](更一般地说是$_REQUEST['x'])到$x

这会导致bunch of security holes,如果你有低质量的PHP代码(如果你多年没有维护它可能就是这种情况)。