index.php //入口文件

  1. <?php
  2. /**
  3. * @name index.php
  4. * @decs
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 9:49
  7. */
  8. include "goods.php";

  conn.inc.php //数据库连接常量设置

  1. <?php
  2. /**
  3. * @name conn.inc.php
  4. * @decs 数据库常量配置
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 9:43
  7. */
  8. define("HOST",'13.232.50.253');
  9. define("USER",'liuyu');
  10. define("PWD",'94492474');
  11. define("DBNAME",'onecms');

  mysqli.php //数据库连接

  1. <?php
  2. /**
  3. * @name mysqli.php
  4. * @decs 数据库连接
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 9:44
  7. */
  8. include 'conn.inc.php';
  9. $mysqli=new mysqli(HOST,USER,PWD,DBNAME);
  10. if($mysqli->connect_errno){
  11. die('数据库连接出现错误,请检查配置'.$mysqli->connect_error);
  12. }

  goods.php //商品展示

  1. <?php
  2. /**
  3. * @name goods.php
  4. * @decs
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 9:46
  7. */
  8. header("Content-type:text/html;charset=utf-8");
  9. include "mysqli.php";
  10. ?>
  11. <div style='width:800px;float:none'>
  12. <h1>商品列表</h1>
  13. <!-- 显示当前系统时间-->
  14. <h3><p id="demo"></p>
  15. <script>
  16. var myVar=setInterval(function(){myTimer()},1000);
  17. function myTimer() {
  18. var d = new Date();
  19. document.getElementById("demo").innerHTML = d.toLocaleTimeString();
  20. }
  21. </script>
  22. </h3>
  23. <form method="get" action="">
  24. <table style="100%" border="1">
  25. <tr>
  26. <td>
  27. <select name="gid">
  28. <option value="0">请选择商品</option>
  29.  
  30. <?php
  31. /**
  32. * @name show
  33. * @decs 无限级分类
  34. * 关联model:
  35. * @param $fid
  36. * @param $i
  37. * @author 老猫 <18368091722@163.com>
  38. * Updated on: 2019/5/30 10:12
  39. */
  40. function show($fid,$i)
  41. {
  42. global $mysqli;//全球变量关键字,将前面的变量作用域使其在函数内生效
  43. $sql = "select *from goodstype where fid=$fid";
  44. $result = $mysqli->query($sql);
  45. $str=" ";
  46. $i++;
  47. for($n=1;$n<$i;$n++) {
  48. $str .= "---";
  49. }
  50. $id=isset($_GET["gid"])?$id=$_GET["gid"]:"";
  51. ?>
  52. <?php
  53. while ($row = $result->fetch_assoc()) {
  54. ?>
  55. <option <?php if($id==$row['id']){echo "selected";}?> id="<?php echo $str.$row["classname"] ?>" value="<?php echo $row["id"] ?>">
  56. <?php echo $str.$row["classname"] ?>
  57. </option>
  58. <?php
  59. show($fid=$row["id"],$i);
  60. ?>
  61. <?php
  62. }
  63. }
  64. show(0,0);
  65.  
  66. ?>
  67. <input id="select" type="submit" value="查询"></select></td></tr>
  68. </table>
  69. </form>
  70. </div>
  71. <div style="float: none;width: 600px">
  72. <?php
  73. $id=isset($_GET["gid"])?$id=$_GET["gid"]:"";
  74. if(!empty($id)){
  75. $sql="select *from goods where goodstypefid=$id or goodstypefstr like '%$id%' and checkinfo=1 and delstate=0";
  76. }else{
  77. $sql="select *from goods";
  78. }
  79. $result=$mysqli->query($sql);
  80. ?>
  81. <table border="1" cellpadding="3" cellspacing="0" width="60%">
  82. <tr bgcolor="skyblue">
  83. <?php
  84. while($row=$result->fetch_assoc()){
  85. ?>
  86. <td >
  87. <image width="200px" height="200px" src="<?php echo $row["picurl"]?>"></image>
  88. <a title="查看商品详细信息" href="goodsshow.php?id=<?php echo $row["id"]?>"><?php echo $row["title"]?></a>
  89. </td>
  90. <?php
  91. }
  92. ?>
  93. </tr>
  94. </table>
  95. </div>

  goodsshow.php //商品详情页展示

  1. <?php
  2. /**
  3. * @name goodsshow.php
  4. * @decs
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 10:15
  7. */
  8. header("Content-type:text/html;charset=utf-8");
  9. include "mysqli.php";
  10. ?>
  11. <?php
  12. $id=isset($_GET["id"])?$_GET["id"]:1;
  13. $sql="update goods set hits=hits+1 where id=".$id;
  14. $mysqli->query($sql);
  15. $sql="select *from goods where id=".$id;
  16. $result=$mysqli->query($sql);
  17. while($row=$result->fetch_assoc()){
  18. ?>
  19. <div>
  20. <span><?php echo $row["title"] ?></span>
  21. <hr>
  22. <image src="<?php echo $row["picurl"] ?>" width="200"></image>
  23. <br>
  24. 数量:-<input type="text" id="buynum" value="1">+
  25. 价格:
  26. <del>市场价:<?php echo $row["marketprice"] ?></del>
  27. 出售价:<i style="color: red"><?php echo $row["salesprice"] ?></i>
  28. <input type="hidden" id="id" value="<?php echo $row["id"] ?>">
  29. <hr>
  30. 内容:<?php echo $row["content"] ?><br>
  31.  
  32. <a href="javascript:;" onclick="buynow()">立刻购买</a> <a href="javascript:;" onclick="addshoppingcart()">加入购物车</a>
  33. <?php
  34. }
  35. ?>
  36. </div>
  37. <script src="jquery.min.js"></script>
  38.  
  39. <script>
  40. //立即购买
  41. function buynow(){
  42. //先添加到购物车再进行跳转到购买页面
  43. addshoppingcart("buy");
  44. }
  45. //添加到购物车
  46. function addshoppingcart(a){
  47. $.ajax({
  48. url:"shoppingcart.php?a=addshoppingcart",
  49. type:"post",
  50. data:{'buynum':$("#buynum").val(),'id':$("#id").val()},
  51. dataType:"html",
  52. success:function (data) {
  53. if(a=="buy"){
  54. location.href="shoppingcart.php?a=buynow";
  55. }else{
  56. if(data){
  57. alert("添加购物车成功!");
  58. }
  59. }
  60. }
  61. })
  62. }
  63. </script>

  shoppingcart.php //购物车功能

  1. <?php
  2. /**
  3. * @name shoppingcart.php
  4. * @decs
  5. * @author 老猫 <18368091722@163.com>
  6. * Updated on: 2019/5/30 10:20
  7. */
  8.  
  9. header("Content-type:text/html;charset=utf-8");
  10. include "mysqli.php";
  11. $a=isset($_GET["a"])?$_GET["a"]:"";
  12. //添加购物车
  13. if($a=="addshoppingcart"){
  14. $buynum=$_POST["buynum"];
  15. $id=$_POST["id"];
  16. // echo "<script>alert($buynum+$id)</script>";
  17. if(!empty($_COOKIE["shoppingcart"]))
  18. $shoppingcart=unserialize($_COOKIE["shoppingcart"]);
  19. else
  20. $shoppingcart=array();
  21. if(isset($id) && isset($buynum)){
  22. $id=intval($id);
  23. $buynum=intval($buynum);
  24. $shoppingcart[]=array($id,$buynum);
  25. }
  26. setcookie('shoppingcart',serialize($shoppingcart));//商品属性进行序列化保存到cookie中
  27. return true;
  28. }elseif($a=="buynow") {
  29. //下面写购物车页面
  30. if (!empty($_COOKIE["shoppingcart"])) {
  31. ?>
  32. <table width="36%" border="1" cellspacing="0" cellpadding="0">
  33. <tr bgcolor="#87ceeb">
  34. <td width="20%">商品ID</td>
  35. <td width="35%" height="30">商品名称</td>
  36. <td width="25%">购买数量</td>
  37. <td width="15%">价格</td>
  38. <td width="5%">操作</td>
  39. </tr>
  40. <tr>
  41. <td height="10" colspan="4"></td>
  42. </tr>
  43. <?php
  44. $totalprice = "";
  45. $shoppingcart = unserialize($_COOKIE["shoppingcart"]);
  46. foreach ($shoppingcart as $key => $value) {
  47. $keys = array($key);
  48. ?>
  49. <tr>
  50. <td><?php echo $value[0] ?></td>
  51. <td height="30">
  52. <?php
  53. $sql = "select *from goods where id=" . intval($value[0]);
  54. $result = $mysqli->query($sql);
  55. $row = $result->fetch_assoc();
  56. $totalprice += $row["salesprice"] * $value[1];
  57. echo '<a href="goodsshow.php?cid=' . $row['goodstypeid'] . '&id=' . $row['id'] . '" class="title" target="_blank">' . $row['title'] . '</a>';
  58. ?>
  59. </td>
  60. <td><?php echo $value[1] ?></td>
  61. <td><?php echo $row["salesprice"] * $value[1] ?></td>
  62. <td> <a href="shoppingcart.php?a=delone&key=<?php echo $key ?>" onclick="">取消</a></td>
  63. </tr>
  64. <?php
  65. }
  66. ?>
  67. </table>
  68. <hr>
  69. <span style="float: left;width: 250px;height: 150px">
  70. 总价格:<?php echo $totalprice ?><a href="">下一步</a> <a href="shoppingcart.php?a=empty">清空购物车</a>
  71.  
  72. </span>
  73. <?php
  74. }
  75. }elseif($a=="delone"){
  76. $key=$_GET["key"];
  77. $shoppingcart=unserialize($_COOKIE["shoppingcart"]);
  78. unset($shoppingcart[$key]);
  79. if(empty($_COOKIE)){
  80. setcookie($shoppingcart,"",time()-3600);
  81. }elseif(empty($shoppingcart)){
  82. setcookie("shoppingcart",serialize($shoppingcart));
  83. echo "<div class='shoppingcartempty'>您的购物车目前没有商品!3秒后跳回首页......</div>";
  84. header("Refresh:3;url=goods.php");
  85. }else{
  86. setcookie("shoppingcart",serialize($shoppingcart));
  87. header("location:shoppingcart.php?a=buynow");
  88. }
  89.  
  90. exit();
  91. }//清空购物车
  92. elseif($a=="empty"){
  93. //清除整个cookie保存的商品信息
  94. unset($_COOKIE["shoppingcart"]);
  95. setcookie("shoppingcart","",time()-3600);
  96. echo "<div class='shoppingcartempty'>您的购物车目前没有商品!3秒后跳回首页......</div>";
  97. header("Refresh:3;url=goods.php");
  98. }

  

以上摘自php中文网

购物车以php原生cookie实现的更多相关文章

  1. 工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能

    登入界面<% Cookie[] cks =request.getCookies(); String str=null; for(Cookie ck:cks) { if(ck.getName(). ...

  2. 购物车实现思路:cookie + 数据库

    一.加入购物车 1.用户未登录  ==> 将商品id和商品数量存为数组 ==>序列化后存到cookie中 代码: if(!isset($_SESSION['uid'])){ if(empt ...

  3. 模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能

    Login <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...

  4. 原生cookie

    出于浏览器的安全性限制,从WEB应用程序中访问用户本地文件系统是有许多限制的.但是WEB站点的开发人员可以使用cookie,将少量信息保存在用户本地硬盘的指定空间中. document对象的cooki ...

  5. javascript 原生 cookie 处理

    来自网络! function getCookie(name) { var start = document.cookie.indexOf(name + "="); var len ...

  6. Javascript 原生Cookie使用用法

    var oCookie = { setCookie: function (name, value, expireDays, path, domain) { var expireDays = expir ...

  7. iphone原生cookie处理

    可以使用NSURLConnection的类来执行HTTP请求,登录该网站,并检索的cookie. 要执行一个请求,只是创建一个NSURLConnection的实例,并分配给它的委托对象. NSURLR ...

  8. 创建Cookie,简单模拟登录,记录登录名,购物车记录先前添加内容,session控制登录

     工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站, ...

  9. 购物车存到cookie

    为什么不存session? 首先,session存在时间限制,会定期清空的,而cookie如果不主动清或者设置定期则不会清楚: session存放在服务器端,cookie存放在客户端浏览器. 购物车存 ...

随机推荐

  1. python 绘制sinx

    code import turtle import math turtle.speed() turtle.penup() turtle., * math.sin((-/) * * math.pi)) ...

  2. Docker容器常用命令汇总

    Docker常用命令总结如下: # 查看docker详细信息 docker info # 获取当前节点所有容器 docker ps -a # 管理容器生命周期 docker [start|stop|r ...

  3. JavaWeb_(Hibernate框架)Hibernate中数据查询语句HQL基本用法

    HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...

  4. 如何简单的在linux上安装jdk并配置环境变量

    这篇文章是为了给我一会自己安装的时候方便使用的,所以内容很简单,平时在wendows系统上安装很容易,但是换到linux系统上面就蒙圈了. 一.下载jdk文件 我这提供的是官方的地址:http://w ...

  5. IntelliJ IDEA-配置文件位置

    关于配置文件的位置 一旦开始使用IDEA之后,就需要做很多的配置相关工作,使得IDEA越来越符合你的个人习惯,让你使用起来得心应手.而这些配置信息,都保存在C盘,比如我的就会默认保存在如图所示的位置 ...

  6. [Java]用 MessageFormat 拼接组合字符串

    package com.hy; import java.text.MessageFormat; public class Test3 { public static void main(String[ ...

  7. git-本机内容git至github

    1.修改仓库的名字 github中右上角/settings/Account: 修改后显示的变化: 2.本地和github账号创建联系 (base) localhost:~ ligaijiang$ ss ...

  8. C# WPF ASP.net 上传多文件和数据

    C# WinForm 上传多文件和数据 public static class HttpHelper { private static readonly Encoding DEFAULTENCODE ...

  9. mybaits及mybaits generator 插件使用指南(亲测原创)

    一. eclips安装mybaits插件 参考文章:http://www.cnblogs.com/zengsong-restService/archive/2013/08/09/3248245.htm ...

  10. 在Android初次的前期学习中的二个小例子(2)

    Hello13:SQLite数据库 一.简述SQLite的概念和主要特性 SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,使用非常方便,支持SQL语法标准和数据库事务原则. 相对于Sh ...