Ajax 和 JavaScript 验证用户登录

Ajax 和 JavaScript 验证用户登录

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="./js/ajax.js"></script>
<title>用户登录</title>
<style type="text/css">
	.text {
		width:180px;
		height:21px;
	}
	.userRed {
		border: 1px solid red;
		width:180px;
		height:21px;
	}
</style>
</head>
<body>
	<table border="0" align="center" style="font-size:13px;" width="300">
      	<tr>
        	<td align="center" colspan="2"><div id="con"></div></td>
        </tr>
        <tr>
			<td align="right" height="30">用户名:</td><td><input type="text" name="user" id="user" class="text" /></td>
		</tr>
		<tr>
			<td align="right" height="30">密码:</td><td><input type="password" name="password" id="password" class="text" /></td>
		</tr>
		<tr>
			<td align="center" colspan="2"><input type="button" id="btn" value="登录" /> <input type="button" value="重置" id="re" /></td>
		</tr>
	</table>
</body>
</html>
<script src="./js/login.js"></script>

login.js

var btn = document.getElementById('btn');
var re = document.getElementById('re');
var user = document.getElementById('user');
var password = document.getElementById('password');
btn.onclick = function(){
	var isValidate=false;
	if (!user.value.match(/^\S{2,20}$/)) {
		user.className = 'userRed';
		user.focus();
		return;
	} else {
		user.className = 'text';
		isValidate=true;
	}

	if (password.value.length<3 || password.value.length>20) {
		password.className = 'userRed';
		password.focus();
		return;
	} else {
		password.className = 'text';
		isValidate=true;
	}
	if (isValidate) {
		var ajax = Ajax();
		ajax.get('login.php?user='+document.getElementById('user').value+'&password='+document.getElementById('password').value, function(data){
			var con = document.getElementById('con');
			eval(data);
			if (login) {
				con.innerHTML = '<font color="green">登录成功,跳转中...</font>';
				location = 'xx.php'; // 登录成功后指定跳转页面
			} else {
				con.innerHTML = '<font color="red">帐号或密码错误!</font>';
			}
		});
	}
	
}
re.onclick = function(){
	user.value="";
	password.value="";
}

login.php

<?php
require_once './config.inc.php';
$m = new Model();
$user = $_GET['user'];
$password = $_GET['password'];
$count = $m->total('users', "user='". $user ."' and password='". sha1($password) ."'");
if ($count) {
	setcookie('user', $user);
	echo "var login=true";
} else {
	echo "var login=false";
}
?>

效果展示图:

  


ajax.js 文件在前面文章可以找到,数据库结构就两个字段(user,password)即可!


  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
对于用户登录验证,可以使用Ajax来实现异步验证。下面是一个简单的示例代码: HTML部分: ```html <form id="loginForm"> <input type="text" id="username" name="username" placeholder="用户名"> <input type="password" id="password" name="password" placeholder="密码"> <button type="submit">登录</button> </form> <p id="message"></p> ``` JavaScript部分: ```javascript // 监听表单提交事件 document.getElementById('loginForm').addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单默认提交行为 // 获取表单数据 var username = document.getElementById('username').value; var password = document.getElementById('password').value; // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 设置请求参数,POST请求,将数据发送到login.php xhr.open('POST', 'login.php', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // 设置回调函数 xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { // 接收到响应后的处理 var response = JSON.parse(xhr.responseText); document.getElementById('message').textContent = response.message; } }; // 发送请求 xhr.send('username=' + encodeURIComponent(username) + '&password=' + encodeURIComponent(password)); }); ``` 在服务器端的`login.php`文件中,你可以进行用户名和密码的验证,然后返回响应给前端。在上述代码中,通过`xhr.onreadystatechange`回调函数来处理服务器返回的响应,并将验证结果显示在页面上。 请注意,这只是一个简单的示例,实际项目中还需要进行安全性和错误处理等更多的考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值