<?php
// 1,php接收参数
$userName = $_POST['userName'];
$userPwd = $_POST['userPwd'];
// 2,PHP需要操作数据库
// 通过 PHP提供的 mysqli 函数方法来操作数据库
// 本质也是通过SQL语句来操作数据库,只是执行是通过PHP程序执行
// 2-1链接MySQL数据库服务器
// 数据库地址 账号 密码 库名 端口号
$link = mysqli_connect( '127.0.0.1' , 'root' , 'root' , 'nz2003' , 3306 );
// 2-2定义SQL语句
// 验证账号密码,只要有结果就可以,具体内容不重要,就查询显示最简单的id就可以了
$sql = "SELECT `id` FROM `user` WHERE `userName` = '{$userName}' AND `userPwd` = '{$userPwd}' ";
// 2-3执行SQL语句
// 当期执行的是查询语句,结果不会是 布尔类型
// 是一个结果集对象 包含所有结果内容的对象
$result = mysqli_query( $link , $sql );
// 2-4从 结果集对象 中 抽取提取数据 组成新的数据
$arr = mysqli_fetch_all( $result , MYSQLI_ASSOC );
// PHP中 通过 count() 函数来获取数组单元个数
if( count($arr) === 0 ){
// 数组 长度为 0 表示 没有查询结果,账号密码有误
$res = [
'res'=>'0',
'msg'=>'登录失败,账号密码错误',
];
}else{
// 数组 长度不为 0 表示 有查询结果,账号密码正确
$res = [
'res'=>'1',
'msg'=>'登录成功',
];
}
echo json_encode( $res );
html页面
const xhr = new XMLHttpRequest();
// 定义ajax请求对象
xhr.open( 'post' , 'login.php' );
// post方式传参
// 定义响应头
xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded');
// 传参只传,账号密码,不穿验证码
xhr.send(`userName=${name}&userPwd=${pwd}`);
// 接收结果,响应体
xhr.onload = ()=>{
console.log( JSON.parse( xhr.response ) );
const res = JSON.parse( xhr.response )
if(res.res === '1'){
// 登录成功,可以输出提示信息
// 可以通过 cookie 存储本地公共数据信息
// 任意一个页面都知道登录成功了
// 会专门设定 登录的键和值
// 键名一般是 login
// 不同的键值,表示不同的登录状态
mySetCookie( 'login' , 1 , 7*24*60*60);
// 5秒后跳转首页面
let int = 5;
setInterval(()=>{
oDiv.innerHTML = `您登录成功,${int}秒之后,跳转首页面`;
int--;
if(int === 0){
window.location.href = './index.html';
}
} , 1000 )
}
}
})