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

相关文章
相关标签/搜索