2011-08-03 15 views
-1

私はPHPでWebアプリケーションをコーディングしており、MySQLデータベースにセッションを保存する有名なセーブハンドラとのセッションを使用しています。私はsession.gc_maxlifetimeを604800(1週間)に設定しました。だから、私は "私を覚えている"機能を知っておく必要があります、私はクッキーを使うべきか、それとも十分ですか?セッションは常に1週間DBに格納されているので、ウィンドウを閉じると開いています。ログインしています。Session.gc_maxlifetime VS Cookies

URLにSIDを使用していません。セッションテーブルにsid、time、dataを格納しています。時間は毎回更新されます。したがって、ユーザーがウィンドウを閉じると、セッションはそれ以降1週間登録され、戻ってくると再び時刻が更新されます。

答えて

1

まだCookieが必要です。ガベージコレクタはサーバー用です。サーバーにセッションデータをいつ削除するかをPHPに指示します。クライアントはセッションにアクセスするためにセッション識別子を必要とします。セッション識別子は、通常、クッキーに格納されます。したがって、クッキーが「タイムアウト」してウェブブラウザによってクッキーキャッシュから削除された場合、ウェブブラウザはクッキーをもう送信しないので、サーバはクライアントをセッションにもう一度一致させることができません。

要約:セッションの2つの部分があります。サーバーに格納されている実際のデータと、クライアントがサーバー上のセッションデータにアクセスすることをサーバーに知らせるクッキーです。 1つが欠落している場合、それはもう動作しません。

+0

毎回セッションを延長していますので、それは仕事だと思いますか? –

+0

クッキーの有効期間は1週間です。コンピュータの電源を切ってから6日後に再び電源を入れたときに更新できないからです。 – Shi

+0

私はちょうどウィンドウ上のセッションを削除するクロムの上にそれを試してください、FFは奇妙ではありませんでした! –

1

私は、私がクッキーを使用する必要があるかどうかを知る必要があるかどうかを知る必要がありますか、それは(セッション)十分ですか?

セッションは、1週間よりもはるかに制限されている必要があります。最大1時間半かかります。セッションは、ユーザーがアクティブである限りアクティブでなければなりません。

だから、クッキーを求めてください。利用可能なオープンソースソフトウェアの既存の実装を調べてください。