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="https://www.cnblogs.com/husa/p/JScodeFile/jquery-1.8.3.js"></script>
</head>
<body>
<span>Name</span><input type="text" ><br>
<span>Code</span><input type="password" ><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="https://www.cnblogs.com/husa/p/JScodeFile/jquery-1.8.3.js"></script>
</head>
<body>
<span>Name:</span><input type="text" >
<span>Code:</span><input type="password" >
<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);
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/245522.html
標籤:PHP
上一篇:PHP設計模式之單例模式
