session

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爲一個會話瀏覽器服務的?

 


wKiom1ZNgKmBzzAdAAGnmN972cY336.jpg

相關文章
相關標籤/搜索