Cookie无法在不同的浏览器中运行

时间:2012-08-07 20:58:11

标签: php session setcookie

我终于让我的代码用于密码保护脚本。它仍然处于起步阶段,所以我理解它并不安全。我的问题是,我似乎在许多不同的计算机和浏览器中遇到问题。从我所看到的,firefox没有设置cookie的问题。我在某些没有设置cookie的机器上遇到了麻烦。

我所看到的是,在一台机器上,我有一个ie,chrome和firefox的系统。 cookie不适用于chrome,但可以使用ie和firefox。在我的linux机器上,firefox顺利运行。我没有安装chrome,所以我无法测试。然后在另一台机器上,即不想与网站合作。我认为这是隐私设置的问题,但看起来它们都是一样的。

关于chrome问题的奇怪之处在于,我可以看到会话的cookie,但是我看不到我设置的cookie。所以,显然这是一个问题,但我不知道为什么。我和IE有同样的问题。我已经将IE机器设置为接受所有cookie并且没有运气。 Chrome浏览器设置为“允许设置本地数据”。

提前致谢

      if (isset($_COOKIE["Cookie"])){
        FormatScreen();
      }
      else if ($_POST['access_password']){
        $PasswordEntered = crypt($_POST['access_password'],$salt);
        if ($PasswordEntered == $RealPassword){
            setcookie("Cookie", $PasswordEntered, time()+600, '/');
            FormatScreen();
        }
        else{
            echo LoginScreen();
        }
      }

3 个答案:

答案 0 :(得分:0)

我想没有解决方案,所以我建议另一个解决方案来解决你的问题:

  • 您还可以在服务器端使用Sessions。因此,如果用户不接受cookie,他就无权拒绝会话,因为它位于服务器端。
  • 让会话的生命时间。

我希望你在我的评论中找到帮助。

答案 1 :(得分:0)

您应该使用会话Cookie - 请查看http://www.w3schools.com/php/php_sessions.asp

它有助于提高安全性,因为会话存储在服务器上并且不会被篡改。 PHP然后处理客户端上的会话cookie。

答案 2 :(得分:0)

这是我更正后的代码。

 if (isset($_SESSION['loggedin'])){
        echo "You are already logged in.";
      }
      else if ($_POST['access_password']){
        $PasswordEntered = crypt($_POST['access_password'],$salt);
        if ($PasswordEntered == $RealPassword){
            $_SESSION['loggedin']=1;
            //echo "Logged In=". $_SESSION['loggedin'];

            echo "You are now logged in!";
        }
        else{
            echo LoginScreen();
        }
      }