Ubuntuで正常に動作するPHPページを継承しましたが、PHP5.4を使用するXAMMPまたはPHP5.3を使用するWAMPのいずれかを実行しているWindows7システムのディスプレイにソースコードをダンプします。
ダンプが発生するのは、「->」(オブジェクトプロパティ)文字の組み合わせを解析しようとしたときのようです。配列要素としてアクセスするためにこれを「[]」に変更すると、それを通過しますが、「=>」(マッピング)文字の組み合わせの後に表示されるディスプレイにソースコードをダンプします。outは機能しないとコメントし、行全体を削除するだけでそれを通過できます。
最後に、「<」と「>」の記号が付いたhtmlを出力するだけの場合は、画面のダンプも発生します。これらの文字をhtmlエンティティに置き換えると、ソースコードはダンプされなくなりますが、プログラムはメニューを表示せず、まったく機能しません。ユーザー名フィールドに「POST」やその他の「<」および「>」の文字が表示されていても、ログインページからアプリに正常にログインできることに注意してください。
アプリ全体でunix2dosを実行してみましたが、効果がありませんでした。また、問題のあるページの1つのテキストをUTF-8に変換しようとしましたが、それでもうまくいきませんでした。
提起された質問のいくつかに答えて:
動作するubuntuバージョンはPHPバージョン5.3.10-1ubuntu3.1です
WindowsではなくUbuntuで機能する最初のコードは次のとおりです。
public function __construct($gid)
{
$this->id = $gid;
return $this->retrieve();
}
ディスプレイへのコードダンプは次のように始まります。
id = $gid; return $this->retrieve(); }
はい、PHPInfoは機能し、PHPバージョン5.3.13のWAMPサーバーで表示されます
ショートオープンタグを変更してみましたが、違いはありませんでした。
この製品はアウトソーシンググループによって作成されたものであり、ある種のフレームワークに基づいているようです。しかし、Googleでクラス名への参照を見つけることができなかったので、おそらく彼らはすべてを社内で書いたのでしょう。
apacheログに移動すると、実際のエラーは次の行で発生します。
$_SESSION['admin_gid'] = Membership::getGroup($rUser['id']);
エラーメッセージは次のとおりです。
メンバーシップが見つかりません
メンバーシップは、上記の時点でディスプレイにダンプされるクラスと同じファイルで後で宣言されるクラスであるため、何らかの理由で、PHPパーサーはその時点からPHPコードを読み取っていることを理解しません。