### 會話技術
* 什么是會話
打開瀏覽器,訪問某個網站的很多資源(頁面=)通過超鏈接),當你關閉瀏覽器后,一個會話結束。
* 思考一個問題
在意個會話中,用戶會產生一些數據,比如購物車,每個用戶查看購物車的時候,看到自己的選擇,怎么實現?
* 再思考一個問題?
為什么優酷網看視頻時,會記錄及看過的電影?
* 解決之道
會話技術-cookie session
### ?? 會話技術 Cookie技術
Cookie的初步介紹:
1、? Cookie(小甜餅)是客戶端技術,服務器把每個用戶的數據保存在客戶端本地的磁盤上。比如登錄用戶名嗎,賬號,等信息。
2、原理圖

### 3、? Cookie的基本使用
3.1 如何創建Cookie
~~~
<?php
//演示如何創建cookie信息
//把用戶名和密碼保存的客戶端的cookie
setcookie("name","jsh",time()+3600);
setcookie("password","1234567",time()+3600);
setcookie("addr","北京",time()+3600);
echo "set OK!";
?>
~~~
### 3.2 獲取Cookie
~~~
<?php
/* echo "<pre>";
print_r($_COOKIE);
echo "</pre>"; */
if(!empty($_COOKIE['name'])){
echo $_COOKIE['name'];
echo "</br>";
}else{
echo "name=NULL";
}
if(!empty($_COOKIE['password'])){
echo $_COOKIE['password'];
echo "</br>";
}else{
echo "password=NULL";
}
if(!empty($_COOKIE['addr'])){
echo $_COOKIE['addr'];
echo "</br>";
}else{
echo "addr=NULL";
}
?>
~~~
### 3.3 如何更新Cookie
~~~
<?php
//Update
setcookie("addr","上海",time()+3600);
echo "更新成功";
?>
~~~
### 3.4 刪除 Cookie
~~~
<?php
//DEL
setcookie("addr","",time()-200);
echo "刪除成功!";
//DEL all
/* foreach ($_COOKIE as $key=>$val){
setcookie("$key","",time()-200);
} */
?>
~~~
### 具體實例:
1)保存登錄時間:
~~~
<?php
//保存登錄時間 date("D M j G:i:s T Y");
date_default_timezone_set('UTC');
if(!empty($_COOKIE['last_time'])){
echo "上次登錄的時間是".$_COOKIE['last_time'];
setcookie("last_time",date("D M j G:i:s T Y"),time()+24*3600*30);
}else{
setcookie("last_time",date("D M j G:i:s T Y"),time()+24*3600*30);
}
?>
~~~
在測試過程中,可能會提示時區錯誤的時間:
1、在PHP文件中設置
~~~
date_default_timezone_set('UTC');
~~~
2、在PHP.ini文件中
date.timezone = Asia/Chongqing
2)獲得用戶名或密碼的通用函數
~~~
<?php
function getCookieVal($key){
if(empty($_COOKIE[$key])){
return "";
}else{
return $_COOKIE[$key];
}
}
?>
~~~
注:如果沒有
~~~
setcookie("addr","上海");中沒有設置過期時間,只能在一次會話中保存,當關閉網頁后,在打開將不會顯示,
~~~
### session 技術
思考問題:
1、我們在瀏覽網站,去購物的時候,張三和李四,可以購買不同的商品,并且在查看購物車的時候,可以查看各自購買的商品?
思路:1、數據庫 2、Cookie 3、
2、當你登錄某個網站的時候,可以在任何網站顯示登錄的用戶名
思路:1、數據庫 2、Cookie 3、session文件
3、網站安全性問題?
用戶無需登錄,就可以訪問到我們的管理界面,別且不需要登錄就能直接進行增刪查改用戶。
?? Session初步認識
① session是服務器技術
Session 是服務器技術,利用這個技術,服務器在運行時可以為每一個用戶的瀏覽器創建一個為其獨享的session文件,當用戶去訪問服務器中的其他的web資源時,可以從用戶各自的seesion中取出數據為用戶服務。Seesion是總重要的用戶行為的跟蹤技術(防止用戶非法登錄/驗證碼等)。是重點和難點。
②示意圖
###
??
③基本操作
1、???保存Session數據
~~~
<?php
echo "演示如何報錯session數據";
//初始化,可以在配置中設置php.ini 開啟session.auto_start=1
session_start();
//保存數據
$_SESSION['name']="sjin";
//保存數組
$arr=array("beijing","shanghai");
$_SESSION['arr1']=$arr;
echo "set OK!";
?>
~~~
* 保存數據格式:
name|s:4:"sjin"
Name KEY值
S:數據類型
4:字節數
Sjin:值
* 可以保存的數據類型
數組,字符串,對象等等
2、???如何獲取session
~~~
<?php
//獲得session數據
//初始化session
session_start();
/* //獲取所有session
echo "<pre>";
print_r($_SESSION);
echo "</pre>"; */
//2 通過key值獲取
echo $_SESSION['name'];
$arr1=$_SESSION['arr1'];
echo "</br>";
print_r($arr1);
//3 獲取對象的必須把類的聲明引用下
?>
~~~
注意:獲取對象的必須把類的聲明引用下
3、???更新session
~~~
<?php
//更新session
session_start();
//保存數據
$_SESSION['name']="peipei";
?>
~~~
理論上就是重新設置。
4、???刪除session
~~~
<?php
//刪除session
session_start();
//刪除指定的
unset($_SESSION['name']);
//刪除所有的,只會刪除當前會話的session文件刪除掉
//一個會話對應一個session文件
session_destroy();
?>
~~~
當用戶打開瀏覽器,訪問某個網站時操作session時,服務器就會在服務器的磁盤為該瀏覽器分配一個保存session的信息的文件,該文件被這個瀏覽器獨自訪問。Session 細節問題總結:
1、session數據默認存在的時間為1440S(24min),在php.ini中可以配置。session.gc_maxlifetime = 1440
2、設定session文件在服務器的存放路徑:在PHP.ini文件中配置,session.save_path=“”;
3、一次會話只能產品一個session文件。?


- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP開發環境配置說明
- PHP基礎數據類型及運算符介紹
- 走進PHP函數
- 走進位運算
- 走進數組及相關數組函數
- 面向對象的編程(類與對象)
- 面向對象的編程(類成員方法用法)
- 構造方法,析構方法
- static,global用法
- 靜態方法
- 面向對象的編程方法
- 接口方法
- 接口VS繼承、final、const
- 錯誤及異常處理機制、錯誤日志
- HTTP協議深度剖析
- 文件下載
- PHP數據庫編程
- 數據庫編程(2)
- 超全局變量
- Zend studio 開發環境入門
- 雇員管理系統(1)
- 雇員管理系統(2)
- 會話技術(cookie session)
- 會話技術 session場景使用介紹!
- PHP.in中session和cookie的配置說明
- PHP文件編程
- 報表及繪圖技術
- 報表及繪圖技術(jpgraph庫使用,Linux安裝及配置說明)
- XML基本語法及DTD介紹
- XML編程(Dom技術)
- XML編程(Xpath技術,simpleXml技術)基礎入門
- 網上支付平臺PHP版本
- javascript基礎入門