如何使用php

时间:2019-02-25 19:06:04

标签: php session

我建立了一个用户管理系统,该系统可使用户保持登录状态一年

我已经能够使用下面的代码片段

         if (PHP_VERSION >= 5.1) {

          $expire = 365*24*3600; // We choose a one year duration

          ini_set('session.gc_maxlifetime', $expire);

            session_start(); //We start the session 
           // session_regenerate_id(true);
          setcookie(session_name(),session_id(),time()+$expire); 
            //Set a session cookies to the one year duration

这可以按我的预期工作,但是我还想让用户选择注销,并将cookie设置为过期。

我被困住了,这不仅会使我的用户陷入困境,而且他们整整要登录一年,如果他们需要注销,那将是一个现状。

这就是我试图取消设置cookie并清除会话变量以便注销用户的方法。

        if ( isset( $_COOKIE[session_name()] ) )
        setcookie( session_name(), "", time()-31556952, "/" );

         $_SESSION = array();

         session_destroy();

      setcookie('cookie1', '', strtotime('-1 year'));
      setcookie('cookie2', '', strtotime('-1 year'));

我无法将Cookie设置为过期

请帮助我。

1 个答案:

答案 0 :(得分:1)

用户注销后,您只需删除cookie并创建一个新的cookie,该cookie会在另一年后过期。

尝试使用此方法删除Cookie,然后可以使用您的代码创建一个新的Cookie:

$sessionName = session_name();

if (isset($_COOKIE[$sessionName])) {
  setcookie($sessionName, "", time() - 3600);
}