php會話控制 session & cookie

1、

1.  PHP Session 在您把用戶信息存儲到 PHP session 中以前,首先必須啓動會話。註釋:session_start() 函數必須位於 <html> 標籤以前:php

<?php session_start(); ?>
 
<html>
<body>
 
</body>
</html>

上面的代碼會向服務器註冊用戶的會話,以便您能夠開始保存用戶信息,同時會爲用戶會話分配一個 UID。html

2. 存儲 Session 變量      存儲和取回 session 變量的正確方法是使用 PHP $_SESSION 變量:數組

<?php
session_start();
// 存儲 session 數據
$_SESSION['views']=1;
?>
 
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
 
<?php
// 檢索 session 數據
echo "瀏覽量:". $_SESSION['views'];
?>
 
</body>
</html>

輸出結果:服務器

瀏覽量:1

在下面的實例中,咱們建立了一個簡單的 page-view 計數器。isset() 函數檢測是否已設置 "views" 變量。若是已設置 "views" 變量,咱們累加計數器。若是 "views" 不存在,則建立 "views" 變量,並把它設置爲 1:cookie

3. 銷燬 Session session

若是您但願刪除某些 session 數據,可使用 unset() 或 session_destroy() 函數。dom

unset() 函數用於釋放指定的 session 變量函數

<?php
session_start();
if(isset($_SESSION['views']))
{
    unset($_SESSION['views']);
}
?>

您也能夠經過調用 session_destroy() 函數完全銷燬 session:this

<?php
session_destroy();
?>

2、

1. 保存session信息spa

index1.php

<?php
session_start();
$_SESSION['name'] = "zhangsan";

index2.php

<?php
session_start();
echo $_SESSION['name'];

先在網頁中運行index1.php,而後再運行index2.php頁面輸出:string(8)「zhangsan」

2. session能夠保存多種數據類型

index1.php

<?php 
session_start();
$_SESSION['name']='zhangsan';
$_SESSION['age'] = 12;
$_SESSION['isboy'] =true;
$arr1=array('北京','小明','hello');
$_SESSION['arr1'] = $arr1;

class Dog{
	private $name;
	private $age;
	private $intro;

	function __construct($name,$age,$intro){
		$this->name = $name;
		$this->age = $age;
		$this->intro = $intro;
	}
}
$dog1 = new Dog("大黃",2,"很聽話");
$_SESSION['dog1'] = $dog1;

index2.php

<?php
	session_start();
foreach($_SESSION as $key=>$value){
	echo $key.":";
	var_dump($value);
	echo "<br>";
}

先在網頁中運行index1.php,再運行index2.php頁面輸出:

 

name:

D:\zhangmengli\demo\my.php:5:string 'zhangsan' (length=8)


age:

D:\zhangmengli\demo\my.php:5:int 12


isboy:

D:\zhangmengli\demo\my.php:5:boolean true


arr1:

D:\zhangmengli\demo\my.php:5:
array (size=3)
  0 => string '北京' (length=6)
  1 => string '小明' (length=6)
  2 => string 'hello' (length=5)


dog1:

D:\zhangmengli\demo\my.php:5:
object(__PHP_Incomplete_Class)[1]
  public '__PHP_Incomplete_Class_Name' => string 'Dog' (length=3)
  private 'name' (Dog) => string '大黃' (length=6)
  private 'age' (Dog) => int 2
  private 'intro' (Dog) => string '很聽話' (length=9)

3. 獲取session信息

(1)直接獲取全部session

(2)根據key獲取

a)直接獲取某個變量

 

b)獲取數組

 

c)獲取對象,session在保存對象時候,無法保存類的信息,所以在獲取對象,須要先聲明這個類。能夠把類單獨做爲一個文件,存儲和讀取session時候分別引用這個文件。

 

4. Session的刪除

(1) 指定刪除session中某個鍵值對

 

(2) 刪除全部session

 

 

3、

1. setcookie : setcookie() 函數向客戶端發送一個 HTTP cookie。語法: setcookie(name,value,expire,path,domain,secure)

<?php
$value = 'my cookie value';
setcookie('testcookie',$value,time()+3600*24);
?>

提示:能夠經過 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 來訪問名爲 "user" 的 cookie 的值。

2. 經過把失效日期設置爲過去的日期/時間,刪除一個 cookie:

<?php
// Set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
?>

3. 建立一個數組 cookie:

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");
if( isset($_COOKIE["cookie"]) ) {
	foreach($_COOKIE["cookie"] as $name => $value) {
		echo "$name:$value <br>";
	}
}
?>

輸出結果爲:

three:cookiethree two:cookietwo one:cookieone

相關文章
相關標籤/搜索