【问题标题】:Session_id is beeing changed when page refresh页面刷新时正在更改会话 ID
【发布时间】:2014-03-16 16:41:54
【问题描述】:

我有关于session_id() 的问题是每次页面刷新都会改变。

其实我在用session的这个功能:

function sec_session_start()
{
   $session_name = 'sec_session_id'; 
   $secure = false; 
   $httponly = true; 
   ini_set('session.use_only_cookies', 1); 
   $cookieParams = session_get_cookie_params(); 
   session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"],
    $secure, $httponly);
   session_name($session_name); 
   session_start(); 
   session_regenerate_id(false); 
}

在我使用的每个页面上

    include "function.php";
    sec_session_start();

所以我怀疑这个功能,因为如果我只使用session_start();session_id() 不会改变。它保持不变,但是如果我从该函数sec_session_start() 调用会话,session_id() 会发生变化。

该功能有什么问题?我找不到出了什么问题。我所有的网站都在使用sec_session_start(),所以我无法更改为session_start()

非常感谢任何帮助。谢谢。

【问题讨论】:

  • session_regenerate_id() 生成新的会话 ID,因为它的目的。
  • False 只是为了不删除旧的会话文件。它的职责是创建一个新的会话 ID。
  • no , false 不重新生成新的id。
  • 我的意思是。如果使用 false,那么您的会话变量将被保留,但会话 I 仍将被更改。
  • 是的,它使用了 false 并且无论如何都改变了,这就是我的问题

标签: php session ini


【解决方案1】:

我找到了答案:

事实上

 session_regenerate_id(false); 

正在生成新的会话 ID,甚至认为它说 false

所以我所做的只是评论session_regenerate_id(false); 的那一行,一切正常。

希望这会帮助一些人。

感谢 smozguurs 的建议。

【讨论】:

  • 奇怪的是函数应该完全按照名字所暗示的那样做
猜你喜欢
  • 2013-05-14
  • 2023-03-25
  • 2018-03-12
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2014-12-31
相关资源
最近更新 更多