登录界面构建与mysql交互
环境准备
win2003server
phpstudy2016
vscode
(1)login.html
- 利用input表单就可构建简单登录界面
- <fieldset>标签:框住标签内容
- <legend>标签:为filedset标签添加标题
- <label>标签:点击字体,聚焦后面的控件
- <li>标签:列表标签,ul标签代表着下方li标签将无序显示,ol标签代表有序显示
- checkbox:复选圆框表单元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1234567</title>
</head>
<body>
<form action="login.php" method="post">
<fieldset>
<legend>用户登录</legend>
<ul>
<li>
<label>用户名:</label>
<input type="text" name="username" id="">
</li>
<li>
<label>密码:</label>
<input type="password" name="password" id="">
</li>
<li>
<label></label>
<input type="checkbox" name="remember" value="yes">7天自动登录
</li>
<li>
<label></label>
<input type="submit" name="login" value="登录">
</li>
</ul>
</fieldset>
</form>
</body>
</html>
(2)login.php
<?php
header('Content-type:text/html;charset=utf-8');
// 开启session
session_start();
// 处理用户登录信息
if (isset($_POST['login'])){
# 接受用户登录信息
$username = trim($_POST['username']);
$password = trim($_POST['password']);
// 判断提交的登录信息
if (($username == '') || ($password == '')){
// 若为空,视为未填写,提示错误,3秒后返回登录界面
header('refresh:3; url=login.html');
echo " 用户名或密码不能为空,系统将在3秒后跳转到登录界面,重新填写登录信息! ";
exit;
}
// 连接数据库
$con = mysqli_connect('localhost','root','123456');
// ip地址 用户名 mysql密码
// 验证数据库连接状态
if(mysqli_errno($con)){
echo "连接失败,请重试".mysqli_error($con);
exit;
}
// 设置解码方式
mysqli_set_charset($con,'utf-8');
// 设置datebase
mysqli_select_db($con,'test');
// 查看传入的用户名、用户密码与数据库中的值是否相同
$sql = "select * from login where username = '$username'and password = '$password'";
// 存放返回的数据
$result = mysqli_query($con,$sql);
// 查看当前的数据有几行
$num = mysqli_num_rows($result);
if (!$num){
# 用户名或密码错误,同空的处理方式
header('refresh:3;url=login.html');
echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
exit;
}else{
# 用户名和密码都正确,用户新信息保存到session中
$_SESSION['username'] = $username;
$_SESSION['islogin'] = 1;
// 若勾选7天内自动登录,则将其保存到cookie中并保存7天
if ($_POST['remember'] == 'yes'){
setcookie( 'username' , $username , time() + 7*24*60*60);
setcookie( 'code' ,md5($username.md5($password)), time() + 7*24*60*60);
} else {
// 未勾选则删除cookie
setcookie('username', '', time()-999);
setcookie('code', time()-999);
}
// 处理完附加项后跳转到登录成功的首页
header('location:index1.php');
echo "登录成功";
mysql_close($con);
}
}
?>