1

Ok。ページ間を移動して失われたセッションに関する投稿がたくさんあることは知っていますが、次のようなものはありません。

私は、共有ホスティング アカウントでうまく機能するサイトに取り組んでいます。

サイトをクラウドサーバーに移動したとき、ログインしかできませんでした。しかし、私が参加したとき、どのページでのアクションも、ログインページに対してユーザーをスローし、セッション変数はどこにもありませんでした。

私にとってはすべて問題なく、セッションパスは書き込み可能で、セッションは正しく解決され、最初のページまで、セッションは HTML コードの最初と最後で正しく表示されました。

1日が狂った後、ページ内のエラー(cssファイルが見つからない、または画像が見つからない)ごとにセッションが失われることがわかりました。そのため、これらのエラーを 1 つずつ修正し (ちなみにこれは非常に優れています)、サイトが再び機能するようになりました。

私の質問は、プログラミングにエラーがあったとしても、これらのような Linux サーバーの動作をどこで設定して、セッションを保存して書き込むことができるかということです。

共有ホスティングがそのように機能する場合、それを行う指示がどこかにあることを意味するため、知りたいのですが...今まで何も見つかりません。

4

2 に答える 2

0

これらのエラーのいずれかにより、セッションが開始される前にエラーまたは警告がページに表示された場合、出力によってセッションの開始がブロックされるため、意味があります。

于 2013-01-29T08:39:11.680 に答える
0

セッションが保存されない原因となるエラーの唯一の可能性は (通常のセッション保存ハンドラーを使用すると仮定して)、ページの終了前に PHP 自体がクラッシュすることです。 CSS ファイルまたは画像、またはクラッシュではない PHP エラー) が発生した場合でも、PHP は通常のシャットダウンをsession_write_close()実行する必要があります。以前に手動で行っていない場合は、自動的に実行されます。

これが Linux 関連の問題である可能性も低いです。

最も可能性の高いオプションは、古いホスティングと新しいサーバーの間の PHP セッション設定の違いです。両方で実行phpinfo()し、セッションの設定を比較してください - 何か変わったことがないかどうかを確認してください。

また、セッション ID Cookie がブラウザーによって受け入れられ、時間の経過とともに変化しないことを確認することをお勧めします。Firebug または Chrome 開発者ツールを使用して、複数のページでセッション ID Cookie (デフォルトでは PHPSESSID と呼ばれます) の値を追跡します。ブラウザによって受け入れられ、常に変更されないことを確認してください。

于 2013-01-29T08:35:22.010 に答える