2012-08-07 48 views
3

我终于得到了我的密码保护脚本代码。它还处于初期阶段,所以我知道它并不安全。我的问题是,我似乎遇到了许多不同的计算机和浏览器的问题。从我所看到的情况来看,firefox在设置cookies方面没有问题。我在某些没有设置Cookie的机器上遇到了麻烦。Cookie不能在不同的浏览器上工作

我所看到的是,在一台机器上,我有一个系统,即IE,Chrome和Firefox。这些cookies不适用于Chrome,但可以使用ie和Firefox。在我的linux机器上,firefox可以毫无困难地工作。我没有安装chrome,所以我无法测试它。然后在另一台机器上,即不想与网站一起工作。我认为这是隐私设置的问题,但看起来它们都是一样的。

关于Chrome问题的一个奇怪之处是,我可以看到会话的cookie,但我看不到我设置的cookie。所以,显然这是一个问题,但我不知道为什么。我与IE有同样的问题。我已经设置了IE机器来接受所有的cookies并且没有运气。 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(); 
     } 
     } 
+0

也许你可以在哪些方面你认为它可能出问题的代码,这是一种痛苦,通过整个事情看的。 – Bono 2012-08-07 20:59:49

+0

函数定义在方案中,不知道是否有效。 – 2012-08-07 21:01:31

+0

@Bono将它切成问题区域。 – 2012-08-07 21:03:09

回答

0

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

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

+1

[阅读为什么提到这个网站不是一个好主意](http://w3fools.com/)。官方的PHP手册将为您提供优秀的最新信息:[PHP会话](http://php.net/manual/en/features.sessions.php) – Jocelyn 2012-08-07 23:46:23

+0

@John Wheal该教程帮助我完成需要它。谢谢! – 2012-08-08 17:50:23

0

我想这个问题并没有解决,所以我建议另一种解决方案,以解决您的问题:

  • 您也可以在服务器端使用会话。所以如果用户不接受cookie,他不能拒绝会话,因为它在服务器端。
  • 为会话腾出时间。

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

+0

这样做的最好方法是什么?根据用户的IP地址分配一个会话? – 2012-08-07 22:42:35

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(); 
     } 
     } 
相关问题