计算机上相同的用户,php会话为不同计算机上的不同用户发出相同的session_id

我有一个网络应用,我现在正在测试。由于某种原因,我无法使会话正常工作。他们在我的本地网站上工作得很好。

这就是问题所在。出于某种原因,PHP会在访问网站时为不同的用户发出相同的session_id值。是的,我在测试之前删除了cookie,因此问题不在于此。

这会导致用户1以用户2身份登录,而无需输入用户名/密码组合。我使用会话cookie和其他cookie值进行持久登录。

我不知道它为什么会发生,但这都是因为两个用户共享相同的会话cookie值。

我注意到,当访问网站的时间差很小(约10-20秒)时,session_id是相同的。超过20秒 - 用户收到了不同的session_id值(这是一件好事)。

我真的尝试了所有可能的场景:

- 两台不同的电脑,相同的浏览器

- 两台不同的电脑,不同的浏览器

- 一台电脑,不同的浏览器

总的来说,我使用了三台不同的计算机和三种不同的浏览器,但无济于事。

我使用标准的session_id()算法,我没有真正改变任何东西,一切都很标准。

编辑:

(补充代码)

$session_start();

if(!isset($_SESSION['login_check']) || $_SESSION['login_check']==0)

{

$_SESSION['login_check'] = 1;

if(isset($_COOKIE['user_id']) && isset($_COOKIE['session_id']))

{

$user = find_user($_COOKIE['user_id']);

if($user->sid == $_COOKIE['session_id'])

{

// extending the cookies

setcookie('user_id', $user->id, time() + 3600*24*14, "/", null, null, true);

setcookie('session_id', uniqid(rand(), true), time() + 3600*24*14, "/", null, null, true);

}

}

}

我不会在代码中的任何地方调用session_id()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值