PHP原生登录验证
<?php
if(empty($_POST['code'])) //如果没有填验证码
{
echo "<script>alert('验证码不能为空!');history.go(-1);</script>"; //报错并返回上一页
exit; //终止脚本的执行
}
if(strtolower($_POST['code'])!=$_SESSION['vcode']) //如果验证码不正确
{
echo "<script>alert('验证码不正确!');history.go(-1);</script>"; //报错并返回上一页
exit;
}
if(empty($_POST['username'])) //如果没有填用户名
{
echo "<script>alert('用户名不能为空!');history.go(-1);</script>"; //报错并返回上一页
exit;
}
if(empty($_POST['password'])) //如果没有填密码
{
echo "<script>alert('密码不能为空!');history.go(-1);</script>"; //报错并返回上一页
exit;
}
$username=$_POST['username']; //声明变量接收数据
$password=md5($_POST['password']); //声明变量接收md5加密后的数据
$data=getOne('admin',"username='$username' and password='$password'"); //调用自定义函数getOne去管理员表查找满足对应条件的数据
if($data) //如果找到,表示用户登录信息正确,为合法用户
{
$level=getOne('level',"id=".$data['level']);//查找登录用户的权限组信息
$data['lname']=$level['name'];//将权限组名保存进登录用户信息数组
$data['level_arr']=json_decode($level['level_arr']);//获取登录用户的权限
$_SESSION['alogin']=$data; //将当前管理员信息保存进登录标识
if(!empty($_POST['remember'])) //如果用户需要记住密码
{
setcookie('username',$_POST['username'],time()+24*60*60*7); //设置cookie保存数据
setcookie('password',$_POST['password'],time()+24*60*60*7); //设置cookie保存数据
}
else //如果用户不需要记住密码
{
setcookie('username',null,time()-1); //清空cookie保存的数据
setcookie('password',null,time()-1); //清空cookie保存的数据
}
echo "<script>alert('登录成功!');window.location.href='index.php?m&c=index';</script>"; //提示并跳转页面
exit;
}
else
{
echo "<script>alert('资料不匹配,请核对后再试!');history.go(-1);</script>"; //报错并返回上一页
exit;
}
elseif($_A=="out") //如果方法参数的值为out,表示执行退出登录操作
{
$_SESSION['alogin']=null; //清空登录标识
echo "<script>alert('您已安全退出!');window.location.href='index.php?m&c=login';</script>"; //提示并跳转页面
exit;
}
elseif($_A=="code") //如果方法参数的值为code,表示执行生成验证码图片的操作
{
vcode(); //调用自定义函数vcode生成验证码图片
}
?>