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);
?>
复制代码

 

posted @   ascertain  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示