会话有时会以多个步骤形式失败

时间:2014-03-03 09:07:59

标签: php mysql session cookies

我在几个不同的页面上构建了一个表单:

  1. 第一页:用户填写证书(姓名,电子邮件,电话等)
  2. 第二页:数据存储在数据库中。将创建一个帐户,并且用户将自动登录。
  3. 第三页:用户必须登录才能继续。 //等
  4. 25次中有24次一切顺利,但出于某种原因,它失败了1/25。我有时可以重现它,但大多数时候都没有。

    在第2步,我使用此代码:

    $hash = md5($salt.time()); // Salt is unique, time is "extra".
    $_SESSION["hash"] = $hash; // Session stored
    setcookie("code",$hash, time()+2440); // Cookie for backup
    // $hash is stored in the database
    

    在第3步,我尝试使用以下方式阅读:

    ini_set('session.gc_maxlifetime', '28800');
    include("../database.inc.php"); // Needed for DB connection
    include("functies.inc.php"); // Needed for filtering vars (also sessions)
    if(!isset($_SESSION)){session_start();}
    $sessionshash = $_SESSION["hash"];
    $cookiehash = filter($_COOKIE["hash"]);
    // $hash is fetched from the database
    

    结果约为25次中的1次:$ sessionhash和$ cookiehash完全相同。虽然来自数据库的$ hash是不同的。很少有时三者都不同,有时一个或另一个没有设定。

    我无法调试它,因为它似乎是随机行为。有没有建议如何调试?

0 个答案:

没有答案