ajax php免密登陆
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>login</h1>
<form action="">
<h3 style="display:none;">login failed</h3>
username: <input type="text" name="username" autocomplete="off"><br>
password: <input type="text" name="password" autocomplete="off"><br>
<button>submit</button>
</form>
<script>
const username=document.querySelector('input[name=username]')
const password=document.querySelector('input[name=password]')
const form=document.querySelector('form')
const h3=document.querySelector('h3')
form.addEventListener('submit',e=>{
e.preventDefault()
if(!username.value || !password.value) return alert('incomplete form')
const xhr=new XMLHttpRequest()
xhr.open('POST','./login.php')
xhr.onload=function(){
result=JSON.parse(this.responseText)
const {code}=result
console.log(result,code,typeof code)
if(code===0){
window.location.href='./cart.html'
}else if(code!==0){
h3.style.display='block'
}
}
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
xhr.send(`username=${username.value}&password=${password.value}`)
})
</script>
</body>
</html>
login.php
<?php
if(!isset($_POST['username']) || !isset($_POST['password'])){
$arr=array("message"=>"incomplete","code"=>1);
echo json_encode($arr);
exit;
};
$username=$_POST['username'];
$password=$_POST['password'];
$link=mysqli_connect('localhost','root','cruces','abate');
$sql="select * from users where username='$username' and password='$password'";
$result=mysqli_query($link,$sql);
$data=mysqli_fetch_all($result,MYSQLI_ASSOC);
if(count($data)){
$arr=array(
"message"=>"login success",
"code"=>0
);
session_set_cookie_params(50,session_name(),session_id());
session_start();
$_SESSION['login']=1;
}else{
$arr=array(
"message"=>"login failed",
"code"=>1
);
}
echo json_encode($arr);
?>
cart.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
const xhr=new XMLHttpRequest()
xhr.open('GET','./cart.php',false)
xhr.onload=function(){
const {code}=JSON.parse(this.responseText)
console.log(code,this.responseText,typeof this.responseText)
if(code!==0){
window.location.href='./login.html'
}
}
xhr.send()
</script>
</head>
<body>
<h1>cart</h1>
<h2>need to login,if not login,window.location.href='./login.html'</h2>
</body>
</html>
cart.php
<?php
session_start();
if(!isset($_SESSION['login'])){
$arr=array(
"message"=>'need to login',
"code"=>1,
"wares"=>[]
);
echo json_encode($arr);
exit;
}
$arr=array(
"message"=>'logined',
"code"=>0,
"wares"=>[1,2,3]
);
echo json_encode($arr);
?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律