PHP页面显示在ubuntu上,而不是在Windows 7上

Jac*_*ble 10 php xampp wamp

我们继承了一个在Ubuntu上运行良好的PHP页面,但是将源代码转储到运行使用PHP 5.4的XAMMP或使用PHP 5.3的WAMP运行的Windows 7系统上.

转储发生的点似乎是它试图解析" - >"(对象属性)字符组合时.当我将其更改为"[]"以作为数组元素进行访问时,它会超过该数组元素,但随后将源代码转储到显示在"=>"(映射)字符组合之后的显示上.注释掉它不起作用,只删除整行才能使它过去.

最后,当它只用"<"和">"符号打印html时,这也会导致屏幕转储.如果我用html实体替换这些字符,源代码不再转储,但程序不显示菜单,根本不起作用.请注意,我可以通过它的登录页面成功登录到应用程序,尽管即使在用户名字段中显示"POST"和其他一些"<"和">"字符.

我已经尝试在整个应用程序上运行unix2dos,但这没有任何效果.还尝试将其中一个违规页面的文本转换为UTF-8,但仍然没有运气.

在回答提出的一些问题时:

工作的ubuntu版本是PHP Version 5.3.10-1ubuntu3.1

在Ubuntu而不是Windows中运行的第一段代码是:

public function __construct($gid)
{
    $this->id = $gid;
    return $this->retrieve();
}
Run Code Online (Sandbox Code Playgroud)

代码转储到显示器的位置开头于:

id = $gid; return $this->retrieve(); }
Run Code Online (Sandbox Code Playgroud)

是的,PHPInfo确实有效,显示了PHP版本5.3.13的WAMP服务器

我尝试改变短开标签,但没有区别.

该产品是由外包集团为我们编写的,它似乎基于某种框架.但我找不到任何关于Google上任何类名的引用,所以也许他们在内部编写了整个内容.

转到apache日志,实际错误发生在这一行:

$_SESSION['admin_gid'] = Membership::getGroup($rUser['id']);
Run Code Online (Sandbox Code Playgroud)

错误信息是:

没有找到会员资格

成员资格是一个类,它稍后在与上面显示的点上显示的转储器相同的文件中声明,因此由于某种原因,PHP解析器不理解它从那一点读取PHP代码.

Tec*_*hie 2

I tried changing the short-open-tag but it made no difference.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以编写一个小脚本并运行它,看看它是否有效。尝试短标签和下面的方法。请记住,如果你搞乱了你的服务器,你php.ini将不得不重新启动服务器。最好通过右键单击任务栏上的服务器图标来更改设置。这可能是由于php 短标签造成的。尝试启用和禁用并运行脚本。另请更改以下脚本,看看它如何影响您更改的设置。

EG:

<?php
echo "hi";
// phpinfo(); <-- preferred if you can
?>
Run Code Online (Sandbox Code Playgroud)

然后您可以查看您的服务器是否按预期工作。如果是 O/P,hi你最好尝试一下你的大代码并看看。

顺便说一句,您提供的代码似乎没有错误。