2015-11-13 10:53:14php
sessionhtml
1.一、在淘寶裏,每一個人購買不同的商品,購物車顯示的也不同數據庫
解決:可用session 實現apache
還有數據庫,cookie數組
1.2思考:瀏覽器
當登陸一個網站,打開每一個網頁如何查看到用戶名??安全
1.2.一、用數據庫服務器
每打開一個頁面,就要打開數據庫cookie
可能頻繁打開數據庫網絡
——》會形成數據庫卡機
一個頁面到另外一個頁面,你如何知道第一個頁面是用這個用戶名呢
1.2.二、用cookie
把用戶名存在cookie裏,再把信息從cookie
但每次都要取一次,形成安全性不高,,在網絡傳數據,形成帶寬浪費
,若是用戶多,每一個人都點擊了多個頁面,形成多大的帶寬浪費
1.2.三、session
session 文件保存在服務器裏
安全性提升 了
由公司工做人員來維護
第一個頁面把數據存在服務器裏,打開第二個頁面直接在服務器裏獲取數據就行 了,省了帶寬,方便了
1.3思考問題?
1.3用戶無需登陸就能夠訪問管理頁面,而且能夠對用戶進行操做??
解決:一、在頁面裏添加 用戶是否登陸 過
把登陸信息存在在cookie,頁面在判斷 是否存在cookie,,可是存在漏動,信 息不安全,可能被人隨便寫點信息也能夠保存cookie了
二、用數據庫麻煩
三、最後解決用session
1.4session 的初步介紹
一、是服務器端技術
二、瀏覽器——瀏覽php文件 把數據保存到session文件裏 ,
session的默認路徑是c:/widows/temp文件
三、第二個php文件 可從session文件中取出信息
2.1數據庫,cookie,session都有增刪改查
2.1.1session使用
一、先初始化
session_start();
保存數據
$_SESSION['name']='xian';
$_SESSION['age']='13';
session可保存浮點數據 ,整數,數組,英文,對象,字符串,布爾值
utf-8每一個漢字是以三個字節保存的
2.1.2保存格式
name|s:8:"xian";
名字key|數據類型:數據大小:值
2.1.3獲取session數據
1.把全部的session獲取
echo "<pre>";
printf_r($_SESSION)
echo "</pre>";
二、經過key來指定獲取一個值
echo "名字爲:".$_SESSION['name'];
$arr1=$_SESSION['arr1'];
echo "<br>";
foreach($arr1 as $key=>$val){
echo "<br>--$var";
}
總結:
一、要使用session都要初始化
二、session文件中能夠放入多個,key==>val對
key不能重複
三、一次會話:
以打開一個瀏覽器窗口,關閉瀏覽器爲一次會話,準確地說是 一個進程
2015-11-19 11:07:22
2.1爲何session在使用前必定要初始化?
由於session_start();是爲此次會話服務建立一個session文件 ,若是沒有session文件下面的操做就不能進行
一次會話可多個session_start();
2.1更新就是修改值
<?php require_once "dog.class.php";?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>獲取session數據</title>
</head>
<body>
<form id='form1' name='form1' method="post" action='common.php?<?=session_name();?>=<?=session_id();?>'>
</form>
<?php
echo "獲取session數據<br>";
session_start();
//$_SESSION['name']='凌汐陽';
$_SESSION['name']='秦逸陽';
//2.經過key來指定獲取某個值
echo "<br>名字是:".$_SESSION['name'];
?>
</body>
</html>
結果:
獲取session數據
名字是:秦逸陽
2.2函數:
2.2.1require_once();要在開頭加載否則在後面不加載了、
2.2.2session_destroy();
把當前瀏覽器對應的文件 刪除
2.2.3獲取sessionid
session_id();
2.3php.ini
2.3.1session_save_path("D:/amp");
session文件的路徑是可修改的在php.ini中
session.save_path=""
2.3.2session文件默認存放時間是1440秒=24分鐘
可在php.ini修改
php.ini中
session.gc_maxlifetime=1440
session的最大生命週期
用了session就從新計算時間
可修改
修改後要從新啓動apache才或用
cookie說是幾分鐘就幾分鐘不會從新計算
2.4會話:
一個會話對應一個session文件
同一個瀏覽器,產生一個session文件 ,
關閉瀏覽器,再打開瀏覽器會產生一個新的session文件
session技術把用戶的數據寫用用戶獨佔的$_SESSION中存在服務器的某個路徑文件中
2.5有些在你退出時會提示是否「安全退出」,
其實這個中間有不少的工做,其中有把服務器或電腦 裏的session,和cookie文件 刪除
否則保存在服務器裏的session就等待自動垃圾回收
2.6思考 :若是沒有手動刪除session那麼系統是怎麼維護
2.7session可用來作什麼 ?
一、網上商城的購物車
二、保存登陸用戶的信息
三、將某些數據放session中供同一用戶的各個頁面使用
四、防止用戶非法登陸到某個頁面
2.八、在使用session時先初始化
方法:
一、須要session的每一個頁面寫入session_start();
二、用在php.ini設置
sesseion.auto_start=1這個會影響效率
2.9爲何 在同一個瀏覽器裏,多頁面裏,如何知道是哪一個session文件 呢並且知道是同一個session文件 呢?
*服務器如何實現一個session爲一個會話瀏覽器服務的?