3

ほんの数日前には問題がなかったサイトを修正するように依頼されましたが、ホストが PHP を v.5.3 にアップグレードしたためにファイルを含めることができなくなりました。

インクルードごとに、次のように 2 つの警告が表示されます。

警告: include_once(file.php) [function.include-once]: ストリームを開けませんでした: No such file or directory in /home/content/anotherFile.inc.php on line 2

警告: include_once() [function.include]: /home/content/anotherFile.inc.php のインクルード (include_path='.:/usr/local/php5_3/lib/php') のための 'file.php' のオープンに失敗しました2行目

私は本当にサイトを書き直したくありません。パスを修正する方法はありますか?共有ホスティング上にあり、php.ini を変更できません

すぐに検索したところ、PHP 5.3 の問題のようですが、5.3.1 では消えてしまいます... バグですか?

可能な解決策は何ですか?


更新: 問題はコードにあると思います。これは何年も前に書かれたもので、$value として $_GET 値が使用されていました。$_GET['value'] に変更すると、いくつかの問題が修正されたようです。

4

1 に答える 1

3

この問題は、非推奨の php.ini 設定が原因のようです: register_globals = on.

これにより、$GET変数が抽出され、編集で説明したようにグローバルに利用できるようになります。

PHP 5.3 では、この設定は廃止されましたが、まだ削除されていません。そのため、リファクタリング中に再度有効にして、サイトが再び機能するようにすることができます。ただし、この設定はセキュリティ リスクであり、php 5.4 で完全に削除されているため、削除する必要があることに注意してください。

于 2012-08-18T18:30:26.863 に答える