簡體   English   中英

使用兩個Chrome瀏覽器時,php應用程序會話感到困惑

[英]php app sessions are confused when working with two chrome browsers

我有一個MySQL數據庫的php應用程序。 用戶及其密碼存儲在數據庫中。 問題是,有時,幾個用戶同時在同一台計算機上工作,每個用戶都有其會話。 當我們將系統與Internet Explorer一起使用時,它運行良好,但現在開始使用google chrome。 發生的情況是會話被混淆,用戶“ x”突然執行某些操作,該會話成為會話用戶“ Y”。 希望您能對我有所幫助,因為我不想返回Internet Explorer。 謝謝。

在這里,我將代碼保留為打開會話:

$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中作為“登錄名”發送):

$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;
};

試試金絲雀:

如果您的計算機運行Windows或OSX,則可以使用Google Chrome Canary 只需安裝插件,然后單擊地址欄末尾的會話cookie圖標即可。 它將使用自己的會話數據打開一個新窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM