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="返回" 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给记录了,浏览器关闭值给删除了。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP 登录与验证示例
- 下一篇: TP5 如何接收表单post所有数据