PHP会话仅对某些用户和设备丢失

时间:2018-08-12 21:29:40

标签: php session nginx session-variables session-cookies

我有一个PHP网站,要求注册和登录用户。我使用PHP会话来管理登录用户的信息。直到几个月前,它一直运行良好,但是我现在只对某些用户和设备有问题。

用户使用登录表单从index.php开始。提交后,会有一个control.php页面,该页面控制用户是否已注册并提供或拒绝控制。如果用户已注册,则转到menu.php。

现在,问题是,尽管输入了正确的登录信息,但某些用户仍无法使用Chrome在其Android设备中访问menu.php(即使他们能够在PC(也可以使用Chrome)中进行操作,或者在其他设备上。

我调试了会话变量,意识到当从control.php重定向到menu.php时,它们被完全杀死。但是,由于这种情况仅发生在某些设备中的某些用户身上,因此我了解重定向或我在类似帖子中阅读的其他内容都没有问题。

我还看到了其他一些建议,即建议清除Cookie并在Chrome中缓存。我也尝试过,但没有用。清除所有信息后,session_id()会更改,但info仍然被杀死。

重新尝试数周并尝试所有可能的解决方案后,我现在完全迷失了。任何建议都将受到欢迎。

顺便说一句,我正在运行nginx和PHP 5.5.9

先谢谢您

JR

control.php看起来像

$nick=$_POST['nick'];
$pass=md5($_POST['pass']);
$q=mysql_fetch_array(mysql_query("select * from ft_managers where (nickmanager='$nick' or email='$nick') and (passmanager='$pass')"));

if($q['activado']==1) // Means account is activated
{
session_start();
$_SESSION['permiso']=1;
$_SESSION['nick']=$q['nickmanager'];
$_SESSION['username']=$q['nickmanager'];
$_SESSION['id']=$q['idmanager'];
Header("Location: menu.php");
exit

}
else
{
    Header("Location: index.php?error=1");
}
?>

menu.php看起来像

<?php
session_start();
print_r($_SESSION);
echo session_id();
// Rest of the code here, but the print_r already shows no info for certain users and devices. For the same user in a different device, everything works
?>

0 个答案:

没有答案