我终于让我的代码用于密码保护脚本。它仍然处于起步阶段,所以我理解它并不安全。我的问题是,我似乎在许多不同的计算机和浏览器中遇到问题。从我所看到的,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();
}
}
答案 0 :(得分:0)
我想没有解决方案,所以我建议另一个解决方案来解决你的问题:
我希望你在我的评论中找到帮助。
答案 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();
}
}