0

セッションを 3 日間維持したいのですが、ページにアクセスするたびに、最大 3 日間更新されます。基本的に、サイトに 3 日間アクセスしないと、セッションが切断されます。

ini_set('session.cookie_lifetime',60*60*24*3); //saw on a similar SO question
session_start();

上記のコードは、すべてのページで編集されるファイルである top.php の先頭にありinclude()ます。

$_SESSION["username"] = $username;
$_SESSION["password"] = $hashedpass;
$_SESSION["authtoken"] = $authkey; //authentication key

上記は$_SESSION、SQLに存在する検証に従ってデータを設定するlogin.phpにあります。

これは WAMP の機能かもしれませんが、ブラウザーを閉じるたびに、php.ini パラメーターが変更されているにもかかわらず、セッションが終了します。おそらく、top.php の 1 行目に間違ったビットを使用していますか?

4

2 に答える 2

2

Cookieを使用してください。セッションの有効期間を制御できるとは思えません。

基本的に、必要なセッション変数を Cookie に保存し、ユーザーがサイトにアクセスしたときに、セッション変数が設定されていない場合は、それらの変数を持つ Cookie が存在するかどうかを確認し、Cookie からセッションにデータをロードします。または、Cookie からアクセスすることもできます

Cookie に保存したくない機密データがある場合。このデータをサーバー上の何らかの形式の永続ストレージ (データベースまたはファイル、データベースが望ましい) に保存し、このデータの ID をユーザー側の Cookie に保存できます。ユーザーがサイトにアクセスすると、Cookie から ID を取得し、データを読み込みます。

于 2013-08-31T21:19:37.283 に答える
0

私はちょうどそれを見つけました:

ini_set('session.cookie_lifetime', 60*60*24*3);
ini_set('session.gc_maxlifetime', 60*60*24*3);
session_start();

...正常に動作します。ブラウザを閉じても、セッションは維持されます。

于 2013-08-31T21:26:21.180 に答える