博客列表 >异步请求fetch API 以及响应数据的处理, 用户数据的接收,session实战

异步请求fetch API 以及响应数据的处理, 用户数据的接收,session实战

飞天001
飞天001原创
2023年04月12日 23:49:46278浏览

异步请求fetch API 以及响应数据的处理, 用户数据的接收,session实战

1. 表单的异步请求

  1. async function doLogin(obj){ //async 定义为异步函数
  2. const email = obj.form.email.value
  3. const password =obj.form.password.value
  4. // console.log(email, password);
  5. if(email.length >0 && password.length > 0){
  6. // 异步提交fetch api
  7. // console.log('111');
  8. const res = await fetch('./lib/user/handle.php',{
  9. //请求方法
  10. method:'post',
  11. //设置请求头
  12. headers:{
  13. 'content-type':'application/json;charset=utf-8'
  14. },
  15. //将需要传送到服务器上的数据,解析为json
  16. body:JSON.stringify({
  17. email,
  18. password
  19. })
  20. })
  21. // 解析返回的数据 response返回json格式时,用r.json()打印响应的内容
  22. const result = await res.json()
  23. console.log(result);

2.响应数据处理

  1. if(result){
  2. alert('登陆成功')
  3. location.href='index.php'
  4. }else{
  5. alert('验证失败')
  6. location.href='login.php'
  7. }

3.用户数据接收

  1. $json = file_get_contents('php://input');
  2. $user = json_decode($json, true);
  3. $email = $user['email'];
  4. $password = $user['password'];

4.用户过滤

  1. $result = array_values(array_filter($users,function($user)use($email,$password){
  2. return $user['email']===$email&&$user['password']===$password;
  3. }));
  4. $flag = false;
  5. if(count($result)===1){
  6. $flag = true;
  7. $_SESSION['username'] = $result[0]['name'] ;
  8. }
  9. echo json_encode($flag);

5.会话跟踪

  1. session_start();
  2. $username = $_SESSION['username'];
  3. <?php if (isset($username)) :;?>
  4. <?=$username?> <a href='#'>[注销]</a>
  5. <?php else:?>
  6. <a href="login.php">登录</a>
  7. <?php endif?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议