我的 php
会话显示异常行为。情况如下:
- 用户登录了应用程序
(https://example.com)
- 会话 cookie 有效期设置为7天。(从浏览器 cookie 生命周期验证)
- 用户跳转到另一个域名(没有
https
) - 当用户尝试通过点击应用链接回来时,会话被销毁。
- 这种行为是突然的。有时候,它仍然有效。
以下是我如何开始会话:
if(!$this->session_manager_issession_set()) {
$this->set_ini_config();
session_name($this->session_manager_name);
session_set_cookie_params($this->session_cookie_life, "/"); //Required for browser cookie cleanup
}
session_start();
if(empty($_SESSION))
{
$output['status'] = false;
}
else{
// Fetch the variables
}
public function session_manager_issession_set(){
$output = true;
$session_status = session_status();
switch($session_status){
case PHP_SESSION_ACTIVE :
break;
default:
$output = false;
}
return $output;
}
private function set_ini_config(){
$output = true;
ini_set('session.gc_probability', 1); //If session expires then ensure that session is flushed and cleared at all instances
ini_set('session.gc_divisor', 100); //If session expires then ensure that session is flushed and cleared at all instances
ini_set('session.gc_maxlifetime', 7*24*60*60); //MAx life of session cookie
ini_set('session.cookie_secure', true);
return $output;
}
这可能是什么原因呢?我实现会话的方式有误吗?
session_start();
移动到文件顶部,在<?php
之后。除此之外,也许你应该查看文档。 - Fatal Errorhttps
而不是http
吗? - Ramil Amerzyanov