返回AJAX与JS......登陆

AJAX与JSON学习实践

白云2019-04-21 11:38:24275
<!DOCTYPE html>
<html>
<head>
	<title>Ajax原理实线</title>
	<meta charset="utf-8">
</head>
<body>
	<form accept-charset="utf-8">
		
	<label>邮箱:</label>
	<input type="email" name="email" id="email"><br><br>
	<label>密码</label>
	<input type="password" name="password" placeholder="" id="password"><br>
	<input type="button" name="" value="提交" id='btn'><br>
	</form>
	<script type="text/javascript">
		// 1.创建Ajax对象
		// let email = document.getElementById("email");
		// let e = email.value
	
		// let password = ;
		// 		console.log(password)
		let btn = document.getElementById("btn");
		btn.onclick= function(){
		let xhr = new XMLHttpRequest();
			

		// 2.启动监听
		xhr.onreadystatechange = function () {
			if (xhr.readyState=== 4 ){
			  //请求成功需要操作的内容
			  if (xhr.status===200) {
			  	// 响应成功
			  	let ps = document.createElement('p');
			  	let enjson = JSON.parse(xhr.responseText);   //JSON.parse()方法可以将服务器发送过来的JSON格式解析成JS的对象
			  	if (enjson['status']===1) {
			  	ps.innerHTML=enjson['msg'];
			  	}else if (enjson['status']===0){
			  	ps.innerHTML=enjson['msg'];
			  	}
			  	document.body.appendChild(ps);

			  	setTimeout(function(){   //计时器
			  		location.href='admin.php';
			  	}, 2000)

			  }else {
			  	// 响应失败


			  }

			}else{

				// 如果请求在继续那么可以输出一张图片
			}
			
		}

		let json = {
			email:document.getElementById("email").value,
			password:document.getElementById("password").value
	}

		json = JSON.stringify(json);  //将JS对象转为字符串

		// 3.发送请求
		xhr.open('post', 'check.php', true);
		xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //POST要修改请求头

		xhr.send("data="+json);//手动添加一个键,拼接json变量的值,发送到服务器

}

	</script>

</body>
</html>
<?php
$data = $_POST['data']; 
$data = json_decode($data);
$email = $data->email;
$password = $data->password;

$dbh = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

$sql="SELECT `password`,`email`,`name` FROM `user` WHERE `email`=:email AND `password`=:password";

$stmt = $dbh->prepare($sql);
$stmt->bindparam(':password',$password,PDO::PARAM_STR);
$stmt->bindparam(':email',$email,PDO::PARAM_STR);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);  //由数据返回值,没有返回false


if ($user) {
	session_start();    //启动会话
	$_SESSION['username']= $user['name'];  //生成会话标识。
	echo json_encode(['status'=>1,'msg'=>'登陆成功正在跳转']);  //json_encode函数将数组格式化为JSON格式。
	

}else{
	echo json_encode(['status'=>0,'msg'=>'登陆失败']);
}


?>


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送