gpt4 book ai didi

刷新时重新生成 PHP session_id

转载 作者:搜寻专家 更新时间:2023-10-31 21:32:45 26 4
gpt4 key购买 nike

我在使用 session_id() 时遇到问题,它每次在浏览器刷新/重新启动时都会返回一个新值。

阅读这篇文章 here但这并没有解决问题。我做了那里提到的所有事情 - 浏览器接受 cookie,权限设置正确,连续请求没有更改参数值等。

这是否是指未正确使用session_name()session_set_cookie_params()?或者也许是应该微调的初始配置?

public static function init_session($name = FALSE, $lifetime = 10, $path = '/', $domain = FALSE, $secure = FALSE)   
{
if (empty($name))
{
$name = APP_NAME;
}

if (empty($domain))
{
$domain = BASE_URL;
}

session_name($name);

session_set_cookie_params($lifetime, $path, $domain, $secure, TRUE);

session_start();

echo session_id();
}

最佳答案

首先,您将 session 生命周期设置为10秒,这意味着您每10秒获得一个新 session 。

旁注:某些浏览器在关闭浏览器时丢弃 session cookie 是正常行为。

如果您需要将 session 扩展到多个浏览器 session ,则需要使用持久性 cookie

例子:

function init_session(/* ... */)
{
if(!isset($_SESSION)) {
session_start();
}
//Is it a running session?
if(isset($_SESSION['somevalue'])) {
//Everything is fine, session is loaded, no need to reload from cookies
} else {
if(isset($_COOKIE['yourcookiename'])) {
//reload session from cookie
} else {
create_session();
}
}
}

function create_session()
{
$_SESSION['somevalue'] = 1;
//setcookie
}

阅读http://www.allaboutcookies.org/cookies/cookies-the-same.html

关于刷新时重新生成 PHP session_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com