Same PHP session 适用于所有 PC,少数除外

Same PHP session works on all PCs except a few

在 400 多台计算机上(98% 的公司计算机都被世界各地不同网络上的不同个人使用)此代码在任何页面上 100% 的时间(用户 ID 传递到每个页面)有效导航到 crm,只要使用相同的浏览器并打开:

<? session_start();
   $user_id = $_SESSION['user_id'];

- All OS Win 10 
- All PCs not Macs 
- All same version of Chrome 
- All allow all cookies 
- All same browser settings

但是,当我在网站内部导航到其他页面时,在几台 PC 上使用相同的代码、完全相同的站点和相同的 OS (win 10)、相同的浏览器、相同的浏览器设置, session 滴。

导致这种情况发生的其他 PC 是什么?一定是某些用户 PC 设置导致了这个。

在删除 session 的 PC 上,我尝试删除浏览器并重新安装以匹配正常工作的 PC,我有 运行 所有 Win 10 更新,检查了病毒(品牌新的 HP 笔记本电脑),尽我所能,除了擦除 HD 并重新开始。我不能指望用户能走那么远,希望有人知道如何解决这个问题

问题是一些 PC 出于某种原因在 crm

中导航时删除了 session

迹象表明,正在掉落 session 的计算机的 Win 系统存在问题,但要对其进行诊断就像大海捞针。我在这里发帖是因为也许有人遇到了同样的问题并且知道在 windows OS 中设置什么来修复它。

编辑:

我确实发现,如果站点地址更改为 www.site.com 而不是 site.com,这就是导致 session 下降

的原因

我现在必须弄清楚如何保持 session 是否是 www。或者只是站点名称

我确定其他人可能有此问题。我很偶然地发现,当用户使用 www 导航时。那会扼杀会话,因为所有内部导航都适用于//site。不是 www.

Cookie 存储为 www.和//网站。但没关系,因为导航都是 //site.

解决方法是更新 .htaccess 以强制使用 www。地址更改为//site.

# Remove www from any URLs that have them:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://site.xxx/ [R=301,L]