当使用两个chrome浏览器时,PHP应用程序会话会感到困惑


php app sessions are confused when working with two chrome browsers

我有一个MySQL数据库的php应用程序。用户及其密码存储在数据库中。问题是,有时几个用户同时在同一台计算机上工作,每个用户都有自己的会话。当我们在ie浏览器上使用这个系统时,它运行得很好,但现在开始使用google chrome。发生的情况是,会话混淆了,突然,用户"x"执行了一些操作,会话变成了会话用户"Y"。我希望你能帮助我,因为我不想回到ie浏览器。谢谢你。

这里我保留了打开会话的代码:

$cons = "SELECT * FROM users WHERE login = '$textLogin' AND password = '$pwd'";
$result = mysql_query($cons, $conexion);
if ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    /*
    session_name(encriptar($textLogin));
    session_start(encriptar($textLogin));
    */
    session_set_cookie_params(0);
    session_start();
    $nroId = session_id();
    session_set_cookie_params(0);
    session_id($nroId);
    if(!isset($_SESSION)) 
    { 
    session_start(); 
    }  
/*  session_register($nroId);*/
    $_SESSION["loginUsr"] = $row["login"];
    $_SESSION["passwordUsr"] = $pwd;
    $_SESSION["idUser"] = $row["idUser"];
    $_SESSION["name"] = $row["name"];
    $_SESSION["lastname"] = $row["lastname"];

}

这段代码在每次调用php页面时执行(session_id每次在url中作为"login"发送):

$sigueCheckS = 0;
if ($_SERVER['REQUEST_METHOD'] == "GET") {
    if (isset($_GET["login"])) {
        $textLogin = $_GET["login"];
        $sigueCheckS = 1;
    } else {
        $sigueCheckS = 0;
        $textLogin = "";
    };
};
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    //if (!empty($_REQUEST["login"])) {
    if (isset($_REQUEST["login"])) {
        $sigueCheckS = 1;
        $textLogin = $_REQUEST["login"];
    } else {
        $sigueCheckS = 0;
        $textLogin = "";
    };
};
if ($sigueCheckS == 1) {
    session_id($textLogin);
    /*COMENTAR ESTAS TRES LINEAS*/
    $horas = 4;
    $tiempo = $horas * 3600;
    ini_set("session.gc_maxlifetime",$tiempo);
    /*COMENTAR ESTAS TRES LINEAS*/
    session_set_cookie_params(0);
    session_start();
     if (!isset($_SESSION["idUsuarioUsr"])) { 
        //echo "<br>no registrado";
        echo "<script language='javascript'>window.location='index.php?errorLogin=4';</script>";
        return; 
    };
} else {
    //echo "<br>todo bien";
    echo "<script language='javascript'>window.location='index.php?errorLogin=4';</script>";
    return;
};

Try Canary:

如果你的电脑运行Windows或OSX,你可以使用谷歌Chrome金丝雀。只需安装插件并单击地址栏末尾的会话cookie图标。它将打开一个新的窗口,显示它自己的会话数据。