-1

ユーザーがログインすると、ユーザー名からセッション変数が作成されます。サイトのメニューは、ユーザーのステータスによって決まります。管理者には管理者メニューが表示され、コーチにはコーチのメニューが表示されます。すべて正常に機能します。

$_SESSION['value']あるページから別のページに何かを渡すためにもう一度使用する必要がある場合、物事は崩壊します。たとえば、コーチがログインすると、自分が作成したゲームのリストが表示されます。ゲームを編集するために、1 つのゲームを選択すると、次のページに変数が渡され、前のページで選択したゲームの詳細を編集できます。最初のページでフォームが送信された瞬間(彼がゲームを選択したとき)、セッションが壊れたようになり、すべてのメニューが失われます。

$_SESSION何も渡す必要のないもの (ユーザー、ゲームなど) をデータベースに追加するだけのサイト上の他のフォームは正常に動作します。

私が見落としている明らかな何かがありますか?セッションを中断せずに、あるページから別のページに情報を渡す別の方法はありますか?

4

2 に答える 2

3

これはとても頻繁に聞こえます...

「ああ、session_start ();使う前に電話するのを忘れた$_SESSION


しかしもちろん、このような頭痛の種を引き起こす可能性のあるものは他にもたくさんあります。

  • フォームが送信するページが同じ(または下位の)サブドメインを使用していることを確認します(サイトがwwwどこでも使用しているが、そこにない場合、セッション情報を保持するCookieはその役割を果たしません)。

  • サイトの一部でhttpsを使用しておらず、他の部分でhttpを使用していないことを確認してください

  • セッションCookieのTTL(experiation)が十分に長く、ユーザーが編集を行う時間ができることを確認してください(これは通常問題ではありませんが、デフォルトの構成ではまだ遭遇していません)

于 2012-10-20T20:04:25.830 に答える
1

すべてのページにsession_start()があることを確認してください。フォームが送信するものを含む

于 2012-10-20T20:02:45.707 に答える