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

歡迎訪問 生活随笔!

生活随笔

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

php

PHP学习总结(会话控制)

發布時間:2024/9/30 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP学习总结(会话控制) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近剛做完一個簡易的登陸注冊小項目,當時做的時候匆忙,現在來詳細的了解一下PHP會話控制這方面的知識。

cookie和seesion技術出現的原因:

當一個用戶請求一個頁面時,再請求同一個網站上的另外一個頁面時,HTTP協議不能告訴我們兩個請求是否來自同一個用戶,也不能將兩次訪問聯系到一起!所有出現了cookie和seesion.

一、cookie
cookie是用來將網站的資料記錄在客戶端的技術,讓web服務器將一些資料存放在客戶端(用戶的電腦中)。

1、向客戶端電腦中設置cookie

setcookie();

2、在服務器端上讀取cookie內容

$_COOKIE

3、將多維數組應用于cookie中
例如:

setcookie("member[name]",'www',time()+3600); setcookie("member[email]",'1111',time()+3600);

4、刪除cookie
例如:

setcookie("member[name]",'',time()-3600); setcookie("member[email]",'',time()-3600); //也可以采用遍歷的方法 foreach ($_COOKIE['member'] as $key=>$val){var_dump(setcookie("member[{$key}]",'',time()-3600));} //注意點:使用setcookie刪除cookie的時候,需要與當初設置cookie的時候參數一致!

二、session
session與cookie最大的不同就是,session是把具體信息保存在服務器端。

1、開啟session
例如:

session_start();$_SESSION['name']='www';$_SESSION['email']='sss';$_SESSION['url']='zzz';/再另一個PHP文件中訪問的時候必須加上

2、打開已存在的seesion

session_start(); var_dump($_SESSION);/注意打開之前一定要先開啟seesion

3、注銷變量與銷毀session
先開啟session

session_start();session_unset();/釋放所有變量session_destroy();/銷毀一個會話中的所有數據setcookie('')/名字可以在設置session時,使用var_dump($_COOKIE)來獲取cookie的名字/也可以使用這樣的方法setcookie(session_name(),'',time()-3600);//銷毀保存在客戶端的cookie/但這樣的方法刪除的不干凈/可以采用這樣的方法刪除干凈setcookie(session_name(),'',time()+3600,'/');'/'表示設置cookie的根目錄

三、基于session和cookie的登陸模塊
簡易的用cookie來判斷登陸
login.php(登陸文件)

<?phpheader('Content-type:text/html;charset=utf-8');if (isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY') {exit('您已經登錄請不要重復登錄');}if(isset($_POST['submit'])){if(isset($_POST['username'])&& isset($_POST['password']) && $_POST['username']==='QTFY' && $_POST['password']==='123'){if(setcookie('username',$_POST['username'],time()+3600)){header('Location:login.php');}else{echo 'cookie設置失敗!';}}else{header('Location:skip.php?url=login.php&info=用戶名或密碼輸入錯誤');//應用跳轉頁面}}?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8" /><title>請登錄</title></head><body><form method="post" action="login.php">姓名:<input type="text" name="username" />密碼:<input type="password" name="password" /><input type="submit" name="submit" value="登錄" /></form></body></html>

index.php(判斷是否有cookie以此來進行識別用戶身份)

<?phpheader('Content-type:text/html;charset=utf-8');if(isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY'){echo "{$_COOKIE['username']}你好,歡迎回來!";}else{echo "<a href='login.php'>請重新登陸</a>";?>

這樣就可以做一個簡易的登陸頁面(帶判斷)
skip.php(簡單的跳轉頁面)

<?phpheader('Content-type:text/html;charset=utf-8');if(!isset($_GET['url'])|| !isset($_GET['info'])){exit();}}?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8" /><meta http-equiv="refresh" content="3;URL=<?php echo $_GET['url']?>"/>//3秒<title>正在跳轉</title></head><body><div style="text-align:center;font-size:20px;"><?php echo $_GET['info'] ?>,三秒后自動跳轉</div>/info提示信息</body></html>

loginout(注銷功能頁面)

<?php header('Content-type:text/html;charset=utf-8');if (isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY') {if(setcookie('username',$_POST['username'],time()-3600)){header('Location:skip.php?url=index.php&info=注銷成功,正在跳轉中!');}else{header('Location:skip.php?url=index.php&info=注銷失敗,請稍后重試!');}} ?>

這樣基于cookie的登陸頁面就基本實現了
session與cookie基本相同
要注意:用session時,首先開啟session。

這里就不演示了,具體的看之前做的登陸注冊頁面。這里又學到了一個跳轉頁面,之前都不知道如何用。

總結

以上是生活随笔為你收集整理的PHP学习总结(会话控制)的全部內容,希望文章能夠幫你解決所遇到的問題。

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