0

人々が私のウェブサイトからあまりにも早くログアウトしないように、ログインセッションを長持ちさせようとしています。たとえば、ブログ投稿を作成し、送信時に php の Cookie の有効期限が切れたために失われます。

理想的には、ログアウトせず、ページをロードするたびに更新される 2 時間のセッションを提供したいと思います (以下のコード スニペットは、各セキュア ページのヘッダーの前にあります)。

これは私が試みていることですが、ゼロによる除算があったという setcookie() のエラーが発生しますか? ここで何が間違っていますか?

//How long sessions last
$hours = 2;

// php.ini setting required for session timeout.
ini_set('session.gc_maxlifetime',$hours*60*60);
ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);

//Set the session parameters and start session
$sessionCookieExpireTime=$hours*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();

// Reset the expiration time upon page load
if (isset($_COOKIE[session_name()]))
{
    setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, "/");
}

編集:問題は非標準の引用符とアポストロフィであったため、現在機能しています。誰かがこのコードをコピーして使用する場合に備えて。上記のコードが機能するようになりました。

4

1 に答える 1

1

Cookie の有効期限が切れたときにこれを追加したい場合は、次のようにします。

time()+60*60*24*30

これは、Cookie が 60 秒、60 分、24 時間などで期限切れになると言っているようなものです。Cookie に関するチュートリアルもご覧ください: http://www.w3schools.com/php/php_cookies.asp

于 2013-04-28T16:43:53.110 に答える