1.会话Session、缓存Cookie

  session,可以理解为一种不断验证口令以获得用户持久链接的“访问机制”。

  cookie,是当前访问的页面,由后台发往前台页面数据时所夹带的一小段信息。

  原理说明:

    当后台返回给前台数据的时候,添加的一段“持久”的信息,

    因此,这段信息必须在PHP后台代码中插入添加。

  相关技术:

    ① PHP中“$_GET”和“$_POST”对象,用于在PHP中获取 get 和 post 请求的数据对象;

    ② PHP中的“time()”方法用户获取当前的时间戳,单位是秒s,支持加减法;

    ③ PHP中 setcookie('key' , 'value' , 过期时间),用于设置缓存;

    ④ HTML中 document.cookie 用于获取页面所保存的 cookie 值,类型是字符串。

2.jqAjax

  ajax是一种前后台数据交互的手段。

  原生的ajax实现比较麻烦,需要借助 xmlhttprequest对象构建。

  JQajax则是jQuery已经封装好的现成方法。

  说明:

    ① get无参请求,一般用于前台界面向后台请求获取数据,但不会向后台发送数据;

      $_GET是PHP中的内置对象,用于接受前台发送过来的 get 请求数据包;

    ② get有参请求,一般用于前台界面向后台有条件(参数)的请求获取数据,一般参数都比较小;

    ③ post请求,一般用于登录、注册等保密性较高的场景;

      $_POST是PHP中的内置对象,用于接受前台发送过来的 post 请求数据包;

    ④ echo 用于返回前端请求的指定数据;

    ⑤ json_encode对象,用于将数组或对象等复杂值转换成 json 格式的数据。

  代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ajax请求</title>
    <script src="JScodeFile/jquery-1.8.3.js"></script>
</head>
<body>
    <span>Name</span><input type="text" class="userName"><br>
    <span>Code</span><input type="password" class="userCode"><br>
    <button>Get无参数</button>
    <button>Get有参数</button>
    <button>Post请求</button>
<script>
    var $userName = $('.userName');
    var $userCode = $('.userCode');
    var $btns = $('button');
    // Get无参数请求
    $btns.eq(0).click(function () {
        $.ajax({
            //定义请求方式为 get
            type:'get',
            //设置请求发送的后台地址
            url:'20210106Ajax.php',
            //定义数据交互的格式
            dataType:'json',
            //设置回调函数,后台返回数据时,函数自动执行。
            success:function (res) {
                console.log(res);
                console.log(res.msg2);
            }
        });
    })
    
    // Get有参数请求
    $btns.eq(1).click(function () {
        $.ajax({
            //定义请求方式为 get
            type:'get',
            //设置请求发送的后台地址,以及需要发送的参数值,使用“?”及字符串拼接的形式
            url:'20210106Ajax.php?userName='+$userName.val()+"&userCode="+$userCode.val(),
            //定义数据交互的格式
            dataType:'json',
            //设置回调函数,后台返回数据时,函数自动执行。
            success:function (res) {
                console.log(res);
                console.log(res.msg2);
            }
        });
    })
    
    // Post请求
    $btns.eq(2).click(function () {
        $.ajax({
            //定义请求方式为 get
            type:'post',
            //设置请求发送的后台地址,以及需要发送的参数值,使用“data”发送参数
            url:'20210106Ajax.php',
            data:{
                uName:$userName.val(),
                uCode:$userCode.val(),
            },
            //定义数据交互的格式
            dataType:'json',
            //设置回调函数,后台返回数据时,函数自动执行。
            success:function (res) {
                console.log(res);
                console.log(res.msg2);
            }
        });
    })

</script>
</body>
</html>
<?php
/*
//  get 无参数请求
    $backData1 = array ('msg1'=>'oneSuccess','msg2'=>'twoSuccess');
    //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
    echo json_encode($backData1);

//  get 有参数请求
    $backData2 = array ('msg1'=>'oneSuccess','msg2'=>$_GET);
    //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
    echo json_encode($backData2);
*/
//  post 请求
    $backData2 = array ('msg1'=>'oneSuccess','msg2'=>$_POST);
    //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
    echo json_encode($backData2);
?>

 3.登录交互案例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <script src="JScodeFile/jquery-1.8.3.js"></script>
</head>
<body>
    <span>Name:</span><input type="text" class="userName">
    <span>Code:</span><input type="password" class="userCode">
    <button>用户登录</button>
<script>
    $('button').click(function () {
        $.ajax({
            type:'post',
            url:'20210106Ajax.php',
            data:{
                userName:$('.userName').val(),
                userCode:$('.userCode').val(),
            },
            dataType:'json',
            success:function (fBack) {
                console.log(fBack);
                if (fBack.result==1){
                    alert('登录成功!')
                }else{
                    alert('用户名或密码错误!')
                }
            },
        })
    });

</script>
</body>
</html>
<?php
    $usName = $_POST['userName'];
    $usCode = $_POST['userCode'];
    $nameList = array('Rebecca'=>'111111');
    $fBack = array();
    if($usCode==$nameList[$usName]){
        $fBack['result']=1;
    }else{
        $fBack['result']=0;
    };
    echo json_encode($fBack);
?>