我目前正在为one.com上托管的网站空间开发一个客户端的Web应用程序。
我已经实施了自己的安全登录系统,一切正常。当我记录某人时,变量可用,但是一旦我通过href转到新页面,我的所有会话变量都会丢失。我几乎尝试了类似问题上推荐的所有内容,但它不会起作用。
我无法直接编辑我的php.ini,这是标准的phpinfo:
I can't embed Images yet, this is my phpinfo
此外,在我致电的每个网站的开头
ini_set("session.cookie_secure", 0);
因为在开始时(本地)始终设置为true。
我使用以下代码在每个页面上启动安全会话:
$session_name = 'sec_session_id'; // Set a custom session name
$secure = true;
// This stops JavaScript being able to access the session$id.
$httponly = true;
// Forces sessions to only use cookies.
if (ini_set('session.use_only_cookies', 1) === FALSE) {
header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
exit();
}
// Gets current cookies params.
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
// Sets the session name to the one set above.
session_name($session_name);
session_start(); // Start the PHP session
session_regenerate_id(true); // regenerated the session, delete the old one.
我只是不明白为什么我的Session变量总是丢失。我会很乐意得到所有帮助!
编辑:有人建议最后一行:
session_regenerate_id(true);
可能导致问题,但在删除后它仍然无法正常工作。还有什么呢?
答案 0 :(得分:0)
我很确定这一行(底线)是破坏会话的那一行:
session_regenerate_id(true); // regenerated the session, delete the old one
删除该行,您的会话应重新训练。