セッションが保持され、ブラウザが再起動された後でもアクセスできるように、誰でもセッションを(PHPで)維持する方法を教えてもらえますか?
一般に、セッションはブラウザーを閉じると期限切れになりますが、次回ブラウザーを使用するときにセッションデータにアクセスできるように、セッションを閉じないでください。
回答:
回答№1の19つかいます session_set_cookie_parameters()
セッションを開始する前にセッションCookieにゼロ以外の有効期間を与える、または設定する session.cookie_lifetime
ゼロ以外に。
回答№2のための8
それは矛盾です。
セッションは「ブラウザが閉じられるまで」の略です。
セッションは 期限が切れます。
期限切れにしたくない場合は、おそらくセッションをまったくしたくないでしょう。
おそらく、クッキーまたはデータベースとのセッションを混乱させているでしょう。
回答№3の4
PHP(およびほとんどのWebテクノロジー)のセッションは次のように機能します。
クライアントコンピューターのCookieにセッションIDを保存します。
クライアントがサイトにアクセスすると、セッションIDを送信します。
サーバーは、セッションIDを持つファイルでセッションデータを見つけてロードします。
したがって、ブラウザを閉じてもセッションに影響はありませんが、ブラウザが閉じたときにクッキーが空になった場合(どのブラウザもそのようなことをしないと思います)。
ユーザーが常にログインしていることを確認したい場合は、ユーザーのパスワードをユーザーのCookieに保存できますが、安全ではありません。
答え№4の2
私が見つけた最も簡単で最良の方法は、session_startの代わりに、各ページにセッションを入力する必要があることです
$expire = 365*24*3600; // We choose a one year duration
ini_set("session.gc_maxlifetime", $expire);
session_start(); //We start the session
setcookie(session_name(),session_id(),time()+$expire);
//Set a session cookies to the one year duration
回答№5の場合は0
次のようなことができます:(参照 session_set_cookie_parameters()
そして session_name()
)
// long long time
$sessionTime = 365 * 24 * 60 * 60;
$sessionName = "my_session";
session_set_cookie_params($sessionTime);
session_name($sessionName);
session_start();
if (isset($_COOKIE[$sessionName])) {
setcookie($sessionName, $_COOKIE[$sessionName], time() + $sessionTime, "/");
}
ために $sessionTime
、また参照 この質問
答え№6の場合は-1
これは、セッションの代わりにCookieを使用する場合に実行できます。