/ /ブラウザを閉じた後でもセッションを維持できますか? -php、セッション

ブラウザを閉じた後もセッションを維持できますか? - PHP、セッション

セッションが保持され、ブラウザが再起動された後でもアクセスできるように、誰でもセッションを(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を使用する場合に実行できます。