PHP SESSION实例

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="返回" οnclick="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="返回" οnclick="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="返回" οnclick="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="返回" οnclick="location='index.php';">  
</form>
我们可以看到在页面跳转中变量的值通过session给记录了,浏览器关闭值给删除了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值