描述:
默认用户为Tom,密码为123456
当用户进入网站首页时,如果还未登录,则页面会自动跳转到登录界面。当用户登录时,如果用户和密码都正确,则登录成功,并利用Session保存用户的登录状态。否则提示用户名或密码输入不正确,登录失败
具体要求:
- 编写login.html用于显示登录的界面
- 编写login.php用于接收用户登录的表单。当用户没有登录时,载入登录表单;若用户提交了登录表单,则判断用户名和密码是否正确,如果正确,将用户的登录状态保存到Session中,如果错误,则给出提示信息
- 编写index.php,当Session中含有保存的登录信息时显示首页,否则跳转到登录页面。
- 编写logout.php用于当用户登录成功后退出登录
- 强化系统的安全性,利用Cookie的HttpOnly属性保护浏览器中的SessionID
1、用户登录:login.html
<div class="login">
<p>用户登录</p>
<form method="post" action="login.php">
用户名:<input type="text" name="user" /><br />
密码:<input type="password" name="pwd" /><br />
<input type="submit" name="submit" value="登录" />
</form>
</div>
当单击登录按钮后,表单将提交给login.php,用户名以user提交,密码以pwd提交,效果如下(当然我自己也觉得比较丑)
2、接收登录表单:login.php
session_start();
if($_POST){
//接收用户登录信息
$user=isset($_POST['user'])? trim($_POST['user']):'';
$pwd=isset($_POST['pwd'])? trim($_POST['pwd']) :'';
//保存正确的用户名和密码信息
$data=['user'=>'Tom','pwd'=>123456];
//判断用户信息是否正确
if(($user==$data['user']) && ($pwd==$data['pwd']) ){
//保存登录信息到Session,并跳转到首页
$_SESSION['user']=$data['user'];
header('Location:./index.php');
exit;
}else{
echo "<script>alert('用户或密码错误,登录失败')</script>";
}
}
include_once './login.html';
3、判断登录状态
session_start();
if(isset($_SESSION['user'])){
echo '当前登录用户:'.$_SESSION['user']; //用户已登录
echo "<a href='logout.html'>退出<a>";
}else{
header('Location:login.html');
exit;
}
4、用户退出
session_start();
$_SESSION['user']=[]; //删除所有数据
session_destroy(); //结束当前会话
header("Location:./login.html"); //用户未登录,跳转到登录页面