日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP Cookie和Session

發布時間:2023/12/20 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP Cookie和Session 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cookie

cookle常用來識別用戶,可以理解為瀏覽器留下的一種文件,cookie可以分為會話cookie和硬盤cookie兩種,會話cookie生命周期短,瀏覽器關閉即銷毀,硬盤cookie生命周期由開發者設定,可長可短

1.創建cookie

PHP創建cookie使用函數setcookie(name,value,expire,path,domain,secure);

參數:

name:設定cookie的名稱
value:cookie的值
expire:cookie的有效時長,如果不設置則為會話cookie
path:規定 cookie 的服務器路徑
domain:規定 cookie 的域名
secure:規定是否只能通過HTTPS傳輸cookie,默認f

2.讀取cookie

使用$_cookie[]

3.更新cookie

同樣使用setcookie();

4.刪除cookie

把cookie的有效時長設置為負值即可
需要注意:更新和刪除cookie時,path,domain值必須與之前的一致

5.使用cookie實現登錄

思路:

1.最終目標

:將用戶輸入數據與數據庫中數據做比較,如果對比成功,跳轉到主頁,如果用戶直接訪問主頁,彈窗阻止,但如果用戶勾選自動登錄復選框,則第一次登錄成功后,在一段時間內允許直接訪問主頁。

2.實現思路:

1.1 首先如果用戶勾選復選框,登陸時產生一個包含md5加密后的用戶名密碼的硬盤cookie,反之產生一個同樣的內存cookie,主頁調用數據庫中的用戶名,密碼,用同樣的加密方法加密一個密文,與cookie中的value作比較,相同則允許進入,為了方便從數據庫中找到相關用戶,可在登錄cookie的密文值后面加一個明文id,在主頁拆分即可。

登錄前端的html不寫了

<?phpheader("Content-type: text/html; charset=utf-8"); $usename=$_POST['usename']; //接受用戶名 $passname=$_POST['pass'];//接受密碼 $autologin=$_POST['check'];//接受是否自動登錄 echo $autologin; //接入數據庫 $host = '127.0.0.1'; $user = 'root'; $pass = 'root'; $port=3306; $link=@mysqli_connect("$host","$user","$pass","t2","3306"); @mysqli_set_charset($link,"utf8"); mysqli_select_db($link,'yonghu');//選擇數據表 $sql="select id,username,password from yonghu WHERE username='{$usename}'&&password='{$passname}'"; $result=mysqli_query($link,$sql); if(mysqli_num_rows($result)==1) {//如果用戶選擇自動登錄,則cookle類型設置為硬盤cookleif($autologin==1){$row=mysqli_fetch_assoc($result);setcookie('usename',$usename,strtotime("+1 hours"));//加密操作$son="zeianquan";$key=md5($usename.$passname.$son).":".$row['id'];setcookie('key',$key,strtotime("+1 hours"));}//否則,將cookle設置為會話cookleelse{setcookie('$usename',$usename);}exit("<script>alert('登錄成功!');location.href='gerenjianjie.php';</script>"); } else {exit('用戶名或密碼錯誤.<a href="Untitled-2.php">重新注冊</a>'); } ?> <?php header("Content-type: text/html; charset=utf-8"); if(!isset($_COOKIE['usename'])) {exit("<script>alert('請首先登錄1!');location.href='dengluhouduan.php';</script>"); } if(isset($_COOKIE['key'])) {$key = $_COOKIE['key']; //找到cookle中的用戶id ,與數據庫中做對比,如果有,判斷key是否正確,否則返回登錄$resarr = explode(":", $key);$useid = end($resarr); //接入數據庫$host = '127.0.0.1';$user = 'root';$pass = 'root';$port = 3306;$link = @mysqli_connect("$host", "$user", "$pass", "t2", "3306");@mysqli_set_charset($link, "utf8");mysqli_select_db($link, 'yonghu');//選擇數據表$sql = "select * from yonghu WHERE id=$useid";$result = mysqli_query($link, $sql); //用戶id存在,做進一步校驗if (mysqli_num_rows($result) == 1) { //校驗思路:首先從數據庫獲取用戶名,密碼,用相同的辦法加密,看密文與cookle中的是否相同$row = mysqli_fetch_assoc($result);$usename_t = $row['username'];$password_t = $row['password'];$file=$row['file'];$key = "zeianquan";$key_t = md5($usename_t.$password_t.$key);if ($key_t!= $resarr[0]){exit("<script>alert('請首先登錄2!');location.href='dengluhouduan.php';</script>");}}else {exit("<script>alert('請首先登錄3!');location.href='dengluhouduan.php';</script>");} } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title><?php echo $usename_t?>的主頁</title> </head> <body > 這是主頁!!!!!! </body> </html>

session

session識別用戶的,他與cookie的不同在于Cookie保存在客戶端瀏覽器中,而Session保存在服務器上,因此,session的工作原理是為每個訪客創建一個UID,一般通過cookie保存,或者通過URL傳導。
1.開始session
session_start();
必須位于HTML標簽之前
2.設置數據
$_session['name']=.........或者$-session=$var;

3.生命周期
可使用cookie設置

setcookie(session_name,session_id,expire);

4。用戶禁用cookie后,可以使用URL傳遞UID
比如用一個超鏈接

<a href="####".session_id.>

session

總結

以上是生活随笔為你收集整理的PHP Cookie和Session的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。