Php 如何在数据库中设置用户即使关闭浏览器也不会过期的令牌?

Php 如何在数据库中设置用户即使关闭浏览器也不会过期的令牌?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我一直在使用codeigniter3。我想在数据库中设置cookie令牌。这样即使在浏览器关闭后,会话也不会过期。基于存储的令牌如何实现这一点 $cookie = array( 'name' => 'token', 'value' => generateRandomString() , 'expire' => '1209600', 'domain' => domain() , 'path'

我一直在使用codeigniter3。我想在数据库中设置cookie令牌。这样即使在浏览器关闭后,会话也不会过期。基于存储的令牌如何实现这一点

  $cookie = array(
        'name' => 'token',
        'value' => generateRandomString() ,
        'expire' => '1209600',
        'domain' => domain() ,
        'path' => '/'
    );

    set_cookie($cookie);

正如评论中所说,您在cookie和会话之间犯了错误

  • 会话仅在服务器端,在浏览会话终止时结束
  • Cookie是机器存储的值,保存到您的时间限制
例如,如果您有以下代码:

session_start(); // Start the session
$_SESSION['username'] = "Sam Swift 웃"; // Set a value into the session
isset($_COOKIE['username']) ?: setcookie("username", $_SESSION['username'], 0); // A cookie that will last forever
$\u SESSION['username']
值将在浏览器关闭时被销毁,因为服务器在浏览器打开时保持该值,而名为
username
的cookie将在时间限制设置为0时被永久保持

如果你使用Google Chrome,试着看看这个,它可以让你查看为网站设置的cookies

我希望这对你有帮助

思考笔记:

  • Cookie会重新发送要由浏览器处理的数据,因此,当您首次设置Cookie时,请将页面重新发送到服务器,页面将显示出来

正如评论中所说,您在cookie和会话之间犯了错误

  • 会话仅在服务器端,在浏览会话终止时结束
  • Cookie是机器存储的值,保存到您的时间限制
例如,如果您有以下代码:

session_start(); // Start the session
$_SESSION['username'] = "Sam Swift 웃"; // Set a value into the session
isset($_COOKIE['username']) ?: setcookie("username", $_SESSION['username'], 0); // A cookie that will last forever
$\u SESSION['username']
值将在浏览器关闭时被销毁,因为服务器在浏览器打开时保持该值,而名为
username
的cookie将在时间限制设置为0时被永久保持

如果你使用Google Chrome,试着看看这个,它可以让你查看为网站设置的cookies

我希望这对你有帮助

思考笔记:

  • Cookie会重新发送要由浏览器处理的数据,因此,当您首次设置Cookie时,请将页面重新发送到服务器,页面将显示出来

使用Cookies?->?你能告诉我如何使用浏览器关闭后永不过期的cookie吗?我想你把cookie和会话弄错了,会话会在浏览器关闭或用户离开网站时过期,它们在服务器上。Cookie虽然保存在客户端上,但即使在浏览器关闭后也是如此。Cookie?->?你能告诉我如何使用浏览器关闭后永不过期的cookie吗?我想你把cookie和会话弄错了,会话会在浏览器关闭或用户离开网站时过期,它们在服务器上。Cookie即使在浏览器关闭后也会保存在客户端上