我們繼承了一個在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