小白菜鸟刚刚开始学PHP,555老是做不粗来,心塞塞啊。。木有钱,跪求好心人帮忙
这个登录界面总是会有bug,但是不知道要怎么改进,求帮忙啦!!
<?php
/*
登录界面
*/
error_reporting(E_ALL ^E_NOTICE);
if($_GET['out'])
{
setcookie("cookie","out");
echo "<script>location='login.php';</script>";
}
if($_POST['user']=='admin' && $_POST['pw']=='123')
{
/*setcookie("cookie","ok");
echo "<script language=\"javascript\"> location.href='login.php';</script>";*/
setcookie("cookie","ok");
echo "<script>location='login.php';</script>";
}
if($_COOKIE['cookie']!='ok')
{
echo "<script>alert('用户名或密码不正确');</script>";
}
else
{
echo "<script>alert('登陆成功');</script>";
echo "<a href='login.php?out=out'>退出</a>";
}
?>
用户名:查一下setcookie怎么用吧
setcookie不写过期时间的话是关闭浏览器后这个cookie就过期的,你是怎么用的?
自动登录的原理很简单就是用户初次登录时把用户名与密码保存在cookies中,用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。这样下次登录时加以判断cookies值中的用户名与密码是不是与数据库一样,验证通过则自动登录并设置session即可,否则需要重新输入用户名,密码进行登录。保存的这个cookie值则可以取一个随机码。
/检查用户是否登录
function checklogin(){
if(emptyempty($_SESSION['user_info'])){//检查一下session是不是为空
if(emptyempty($_COOKIE['username'])||emptyempty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状
header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
}else{//用户选择了记住登录状态
$user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料
if(emptyempty($user)){//用户名密码不对没到取到信息,转到登录页面
header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);
}else{
$_SESSION['user_info']=$user;//用户名和密码对了,把用户的个人资料放到session里面
}
}
}
}
爱IT网参考文档:php利用$_COOKIE实现自动登录程序代码