php会话控制

1.  PHP Session 在您把用户信息存储到 PHP session 中之前,首先必须启动会话。注释:session_start() 函数必须位于 <html> 标签之前:

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

上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。

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:

3. 销毁 Session 

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量

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

您也可以通过调用 session_destroy() 函数彻底销毁 session:

<?php
session_destroy();
?>

 1. 保存session信息

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:zhangmenglidemomy.php:5:string "zhangsan" (length=8)


age:

D:zhangmenglidemomy.php:5:int 12


isboy:

D:zhangmenglidemomy.php:5:boolean true


arr1:

D:zhangmenglidemomy.php:5:
array (size=3)
  0 => string "北京" (length=6)
  1 => string "小明" (length=6)
  2 => string "hello" (length=5)


dog1:

D:zhangmenglidemomy.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