🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
通过一个小的项目,让大家理解 session 的作用,以及 PHP 对 session 的基本操作。 功能实现: * 商城里选购商品,添加购物车 * 处理商品订单 * 商品结算 由于涉及到许多界面的编写,我这里就只列出各个文件中的主要逻辑代码,详细的代码,请参考上面我提供的代码文件地址。 所有代码文件目录均位于`/usr/share/nginx/html`。 **商品选购页面 index.php:** ~~~php <?php session_start(); //为了测试的方便,进入此页面,清空session $_SESSION = null; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>文件上传</title> <link href="bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body style="height: 800px"> <div class="container"> <!-- 略 --> </div> <script src="bootcss.com/jquery/3.0.0/jquery.min.js"></script> <script> $(document).ready(function() { $('.buyBtn').each(function(index, el) { $(this).on('click', function(event) { let that = $(this); let id = $(this).attr('id'); //商品id $.post('shopProcess.php', {id: id}, function(data, textStatus, xhr) { //Ajax向后台传输数据 if (textStatus == 'success') { that.siblings().css('display','inline'); that.removeClass('btn-primary'); that.addClass('btn-success'); that.text('已加入'); } }); }); }); }); </script> </body> </html> ~~~ ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid108299labid1396timestamp1484389175895.png) **商品订单处理 shopProcess.php:** ~~~php <?php session_start(); $shops = [ //商品信息 ['name'=>'Kali 渗透测试-后门技术实战','price'=>100], ['name'=>'Kali 渗透测试-Web应用攻击实战','price'=>100], ['name'=>'Kali 渗透测试-服务器攻击实战','price'=>100], ['name'=>'由浅入深学网络','price'=>100], ['name'=>'动手实战学Docker','price'=>100], ['name'=>'Python 经典项目实战','price'=>100] ]; $id = $_POST['id']-1; //商品id-1,因为索引从0开始 $details = $shops[$id]; $_SESSION['shop '.$id] = $details; //将商品信息存入session; var_dump($_SESSION); ~~~ **商品结算页面 shopCart.php:** ~~~php <?php foreach ($_SESSION as $key => $value) { //将session中的信息读取出来 ?> <tr> <td><?php echo $value['name']; ?></td> <td>1</td> <td><?php echo $value['price']; ?></td> </tr> <?php } ?> ~~~ ![此处输入图片的描述](https://doc.shiyanlou.com/document-uid108299labid1396timestamp1484389582764.png)