js+php实现用户登录

2025-01-09php编程
93

一.ajax完成用户名异步检验
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户名是否存在</title>
</head>
<body>
<form action="" method="post">
    <table>
        <tr>
            <td>用户名</td>
            <td><input type="text" name="username" placeholder="请输入用户名" class="name" id="name" ></td>
            <td><span class="note"></span></td>
        </tr>
        <tr>
            <td>密码</td>
            <td><input type="password" name="password" class="pwd" ></td>
        </tr>
        <tr><td><input type="submit" id="check"></td></tr>
    </table>
</form>
</body>
</html>
js代码(当鼠标移开用户名标签时,ajax引擎自动与后台实现异步交互,从而完成验证)
<script type="text/javascript">
    var name=document.getElementById('name');
    var pwd=document.getElementsByClassName('pwd')[0];
    document.querySelector('.name').onblur=function () {
        document.querySelector('.note').innerHTML='验证中……';
        //1.创建对象
        var xhr=new XMLHttpRequest();
        //2.设置请求行(get请求数据写在url后面)
        xhr.open('post','check.php');
        //3.设置请求头(get请求可以省略,post不发送数据也可以省略)
        xhr.setRequestHeader('content-type',"application/x-www-form-urlencoded");
        //3.5注册回调函数
        xhr.onload=function () {
            if(xhr.status==200 && xhr.readyState==4)
            {
                console.log(xhr.responseText);
                var data=JSON.parse(xhr.responseText);
                console.log(data);
                if(data.flag==3) {
                    document.querySelector('.note').innerHTML = data.msg;
                }
            }
        };
        //4.请求主体发送(get请求为空,或者写null,post请求数据写在这里,如果没有数据,直接为空或者写null)
        //post请求发送数据 写在send中
        //key=value&key2=value2
        xhr.send("username="+document.getElementById('name').value);
    };
</script>
后台php文件(check_username.php):
<?php
//print_r($_POST);
$flag=0;
$msg='failure';
$username=isset($_POST['username'])?$_POST['username']:"";
$password=isset($_POST['password'])?$_POST['password']:"";

if($username==='admin'){
    $flag=3;
    $msg='用户名正确';
}else {
    $flag=3;
    $msg='用户名不存在';
}
?>

知识点-----AJAX - onreadystatechange 事件

当发送一个请求后,客户端需要确定这个请求什么时候会完成,因此,XMLHttpRequest对象提供了onreadystatechange事件机制来捕获请求的状态,继而实现响应。

 当请求被发送到服务器时,我们需要执行一些基于响应的任务。

 每当readyState改变时,就会触发onreadystatechange事件。

 readyState属性存有 XMLHttpRequest 的状态信息。

 下面是 XMLHttpRequest 对象的三个重要的属性:

注意:POST请求不加请求头,数据是传不到后台的

二.提交时完成后用户名与密码的验证

创建一个后台文件(check_login.php)用来验证用户名与密码

新建php文件check_login.php(用户数据这里写死,一般是从数据库查询得到的)

$username=isset($_POST['username'])?$_POST['username']:"";
$password=isset($_POST['password'])?$_POST['password']:"";
if($username=='admin' && $password==123){
    $flag=1;
    $msg='登录成功';
} else {
    $flag=2;
    $msg='密码错误';
}

$response=[
    'flag'=>$flag,
    'msg'=>$msg,
];
echo json_encode($response);
在原来的登录界面的js脚本里加入点击时的验证
document.getElementById('check').onclick=function () {
        var xhr=new XMLHttpRequest();
        xhr.open('post','check_login.php');
        xhr.setRequestHeader('content-type',"application/x-www-form-urlencoded");
        xhr.onreadystatechange=function () {
            if(xhr.readyState==4 && xhr.status==200){
                var data=JSON.parse(xhr.responseText);
                if(data.flag==1) {
                  alert(data.msg);
                  console.log(data);
                }else if(data.flag==2){
                    alert(data.msg);
                    console.log(data);
                }
            }
        };
        xhr.send('username='+document.getElementById('name').value+'&password='+pwd.value);
    }
 
The End

相关推荐

php实现多语言网站的思路和构想
我们在进行系统或者网站开发的时候,有需要多语言切换的功能。PHP作为一种常用的编程语言,可以很方便地实现多语言网站功能。本文将介绍如何使用PHP实现多语言网站功能,并提供相应的代码示例。 创建语言文件 首先,需要创建不同语言的语言文件。每个语言文件...
2025-08-20 php编程
83

php通过调用谷歌翻译API实现网站中英文翻译
我们在制作网站时候,要实现中英文双语网站,通过调用api方式实现文章内容自动翻译,这个要怎么操作呢?以调用谷歌翻译api实现翻译。 获取谷歌翻译秘钥 我们需要到Google Cloud控制台创建一个项目,并启用Cloud Translation API。然后,生成一个API密钥,这个...
2025-08-20 php编程
200

PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目
PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目,最终实现效果如下: 准备工作 PHP环境 :确保你的开发环境中安装了PHP。 DeepSeek API密钥 :注册并获取DeepSeek API的访问密钥。 创建api调用接口 创建一个PHP脚本(api.php),用于调用DeepSeek API...
2025-03-31 php编程
100

js+php实现用户登录
一.ajax完成用户名异步检验 html代码: !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" title用户名是否存在/title/headbodyform action="" method="post" table tr td用户名/td tdinput type="text" name="username" placeholder="请输入用户名" cla...
2025-01-09 php编程
93

PHP如何使用session实现保存用户登录信息
session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。 使用session保存页面登录信息 1、数据库连接配置页面:connectvars.php ?php/...
2024-11-05 php编程
95

PhpSpreadsheet生成Excel时实现单元格自动换行
PhpSpreadsheet是PHPExcel的替代版本,PHPExcel的作者已经停止了更新,今天尝试了使用PhpSpreadsheet生成Excel的时候支持单元格内的自动换行,发现用法其实差不多。 先来看一下Excel单元格中的换行,手工输入Alt+Enter可以进行换行,实际上是选择了一个自动...
2024-11-03 php编程
109