我们继承了一个在Ubuntu上运行良好的PHP页面,但是将源代码转储到运行使用PHP 5.4的XAMMP或使用PHP 5.3的WAMP的Windows 7系统上的显示器上。在ubuntu上显示PHP页面,而不是在Windows 7上
转储发生的地方似乎是它试图解析“ - >”(对象属性)字符组合。当我将其更改为“[]”以作为数组元素进行访问时,它会越过该位置,但会将源代码转储到出现在“=>”(映射)字符组合之后的显示中。评论说这是行不通的,只有删除整条线才能到达那里。
最后,当它打印出带有“<”和“>”符号的HTML时,也会导致屏幕转储。如果我用html实体替换这些字符,则源代码不会再转储,但程序不显示菜单,并且根本不起作用。请注意,我可以通过它的登录页面成功登录到应用程序,但即使在用户名字段中显示“POST”和其他一些“<”和“>”字符。
我试过在整个应用程序上运行unix2dos,但没有任何效果。还尝试将其中一个违规页面的文本转换为UTF-8,但仍然没有运气。
在回答一些问题提出:
工作的Ubuntu版本的PHP版本5.3.10-1ubuntu3.1
,在Ubuntu的,而不是在Windows上运行的第一段代码是这样的:
public function __construct($gid)
{
$this->id = $gid;
return $this->retrieve();
}
在码转储到显示开头:
id = $gid; return $this->retrieve(); }
是的,PHPInfo的工作,显示为PHP版本5.3.13的WAMP服务器
我试着改变短开放标签,但它没有区别。
该产品是由外包集团为我们编写的,它似乎基于某种框架。但是我找不到任何关于Google的任何类名的引用,所以也许他们在内部编写了所有的类名。
$_SESSION['admin_gid'] = Membership::getGroup($rUser['id']);
在错误信息是::
会员”未找到
成员是
要去Apache日志在此线路上发生的实际错误类在稍后在与上面显示的点相同的文件中声明,所以出于某种原因PHP解析器不理解它从这一点阅读PHP代码。
你能张贴最短的那一块的代码,在一个平台上工作,而不是其他? – Floris
它似乎在Windows中关闭short-open-tag指令http://php.net/manual/en/ini.core.php#ini.short-open-tag –
你可以得到一个'<?php phpinfo( ); ?>在Win7 Web服务器上工作? – halfer