牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP SESSION实例

创建时间:2017-03-11 投稿人: 浏览次数:150

SESSION的主要作用是在网站中记录变量,保存变量的值,能够让用户在不同的页面,网站中跳转,所使用的变量能够暂时记录。

本地的session在浏览器被关闭的情况下就会删除(其实是保存在本地的session id被删除,没有关闭浏览器的话,session id在访问这个站点的时候都会被发送到要查询的站点中进行操作)。但是服务器的session在还没到期之前不会给删除。

上述就涉及到session id在本地保存的问题了。有保存在cookie的,有保存在表单隐藏字段的。不讨论

SESSION需要session_start()之后才能够使用。

看下面购物车的例子(来自实战详解),购物车中的内容在多个页面跳转变量被保存了下来。

index.php

<?php
SESSION_start();
if(!isset($_SESSION["cart"])){
	$_SESSION["cart"]=array();
}
if(isset($_REQUEST["cart"])){
	for($i=0;$i<count($_REQUEST["cart"]);$i++){
		$c=$_REQUEST["cart"][$i];
		if(array_key_exists($c, $_SESSION["cart"])){
			$_SESSION["cart"][$c]=$_SESSION["cart"][$c]+1;
		}else{
			$_SESSION["cart"][$c]=1;
		}
	}
}
if(isset($_REQUEST["d"])){
	foreach ($_REQUEST["d"] as $value) {
		unset($_SESSION["cart"][$value]);
	}
}
?>
<!DOCTYPE html>
<html>
<head><title>商品分类</title></head>
<body>
<center>   
    <p><a href="a.php">体育用品</a></p>
    <p><a href="b.php">文化用品</a></p>
    <p><a href="c.php">烟酒副食</a></p>
    <p><a href="cart.php" >查看购物车</a></p>
</center>
</body>
</html>

a.php

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" charset="GBK">
	<title>购物街</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
请选择商品:<br/>
<form method="post" action="index.php">
	<input type="checkbox" name="cart[]" value="篮球">篮球<br/>
	<input type="checkbox" name="cart[]" value="排球">排球<br/>
	<input type="checkbox" name="cart[]" value="足球">足球<br/>
	<input type="checkbox" name="cart[]" value="桌球">桌球<br/>
	<input type="checkbox" name="cart" value="气球">气球<br/>
	<input type="submit" value="购买">
	<input type="button" value="返回" onclick="location="index.php";">
</form>
</body>
</html>

checkbox多选框的name被设置成了数组的形式,这样的好处就是多个选中的项在服务器上就是数组形式的。$_REQUEST["cart"]是一个索引数组,$_REQUEST["cart"][0]就是第一个元素。

设置了一个普通按钮跟提交按钮,给普通按钮设置点击事件。

b.php

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html" charset="GBK">
	<title>购物街</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
请选择商品:<br/>
<form method="post" action="index.php">
	<input type="checkbox" name="cart[]" value="铅笔">铅笔<br/>
	<input type="checkbox" name="cart[]" value="钢笔">钢笔<br/>
	<input type="checkbox" name="cart[]" value="圆珠笔">圆珠笔<br/>
	<input type="checkbox" name="cart[]" value="黑笔">黑笔<br/>
	<input type="checkbox" name="cart[]" value="电笔">电笔<br/>
	<input type="submit" value="购买">
	<input type="button" value="返回" onclick="location="index.php";">
</form>
</body>
</html>

c.php

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html" charset="GBK">
	<title>购物街</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
请选择商品:<br/>
<form method="post" action="index.php">
	<input type="checkbox" name="cart[]" value="猪肉">猪肉<br/>
	<input type="checkbox" name="cart[]" value="牛肉">牛肉<br/>
	<input type="checkbox" name="cart[]" value="鸡肉">鸡肉<br/>
	<input type="checkbox" name="cart[]" value="兔肉">兔肉<br/>
	<input type="checkbox" name="cart[]" value="鱼肉">鱼肉<br/>
	<input type="submit" value="购买">
	<input type="button" value="返回" onclick="location="index.php";">
</form>
</body>
</html>

cart.php

<form method="post" action="index.php">
	<?php
	sessoin_start();
	if(!isset($_SESSION["cart"])){
		die("SESSION未创建");
	}
	$cart=$_SESSION["cart"];
	foreach ($cart as  $key=>$value) {
		echo "<input type=checkbox value="$key" name="d[]">".$key." 数量:".$value."<br/>";
	}
	?>
	<input type="submit" value="撤销购物">
	<input type="button" value="返回" onclick="location="index.php";">
</form>

我们可以看到在页面跳转中变量的值通过session给记录了,浏览器关闭值给删除了。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。