登录:

封装类(用于连接数据库)代码中创建一个对象最好可以重复使用

  1. <?php
  2. class DBDA
  3. {
  4. public $host="localhost";
  5. public $uid = "root";
  6. public $pwd = "";
  7. public $dbname = "mydb";
  8.  
  9. //成员方法
  10. public function Query($sql,$type=)
  11. {
  12. $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
  13. $r = $db->query($sql);
  14.  
  15. if($type==)
  16. {
  17. return $r->fetch_all();
  18. }
  19. else
  20. {
  21. return $r;
  22. }
  23. }
  24. }

DBDA.class.php

1.登陆界面

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. </head>
  7.  
  8. <body>
  9. <form action="loginchuli.php" method="post">
  10. <div>用户名:<input type="text" name="uid" /></div>
  11. <div>密码:<input type="password" name="pwd" /></div>
  12. <input type="submit" value="登录" />
  13. </form>
  14. </body>
  15. </html>

login.php

2.登陆处理界面(纯PHP代码) 注意 使用session  判断 (目的不能绕过 登陆界面直接加载该页面)

  1. <?php
  2. session_start();
  3. include("../fengzhuang/DBDA.class.php");
  4. $db = new DBDA();
  5.  
  6. $uid = $_POST["uid"];
  7. $pwd = $_POST["pwd"];
  8.  
  9. $sql = "select pwd from users where uid='{$uid}'";
  10. $attr = $db->Query($sql);
  11.  
  12. $mm = $attr[][];
  13.  
  14. if(!empty($pwd) && $pwd==$mm)
  15. {
  16. $_SESSION["uid"] = $uid;
  17. header("location:main.php");
  18. }
  19. else
  20. {
  21. echo "登录失败!";
  22. }

loginchuli.php

3.主界面

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. </head>
  7. <?php
  8. session_start();
  9. //echo $_SESSION["uid"];
  10.  
  11. if(empty($_SESSION["uid"]))
  12. {
  13. header("location:login.php");
  14. exit;
  15. }
  16.  
  17. $uid = $_SESSION["uid"];
  18. include("../fengzhuang/DBDA.class.php");
  19. $db = new DBDA();
  20. $sql = "select name from users where uid='{$uid}'";
  21. $attr = $db->Query($sql);
  22.  
  23. ?>
  24. <body>
  25. <?php
  26. echo "<h1>欢迎登录:{$attr[0][0]}</h1>";
  27.  
  28. ?>
  29. </body>
  30. </html>

main.php

------------------------加入购物车------------------------------------

1.购物界面

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. </head>
  7.  
  8. <body>
  9. <table width="100%" border="" cellpadding="" cellspacing="">
  10. <tr>
  11. <td>名称</td>
  12. <td>价格</td>
  13. <td>产地</td>
  14. <td>库存</td>
  15. <td>操作</td>
  16. </tr>
  17. <?php
  18. include("../fengzhuang/DBDA.class.php");
  19. $db = new DBDA();
  20.  
  21. $sql = "select * from fruit";
  22. $attr = $db->Query($sql);
  23.  
  24. foreach($attr as $v)
  25. {
  26. echo "<tr>
  27. <td>{$v[]}</td>
  28. <td>{$v[]}</td>
  29. <td>{$v[]}</td>
  30. <td>{$v[]}</td>
  31. <td><a href='jia.php?code={$v[0]}'>加购物车</a></td>
  32. </tr>";
  33. }
  34.  
  35. ?>
  36. </table>
  37.  
  38. </body>
  39. </html>

shuiguo.php

2.加入购物车 操作 [注意数组处理][也可以把二维数组遍历  转化为 一维数组  一维数组 使用 转化为 字符串 储存在新数组里面   再把新的数组转化为字符串最后用 test 方法 (正则里面学的)检测是否存在

  1. <?php
  2. session_start();
  3. //将传过来的水果加到购物车
  4. $code = $_GET["code"];
  5.  
  6. //$_SESSION["gwc"];
  7.  
  8. //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
  9.  
  10. //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
  11.  
  12. //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
  13.  
  14. if(empty($_SESSION["gwc"]))
  15. {
  16. //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
  17. $attr = array(
  18. array($code,)
  19. );
  20.  
  21. $_SESSION["gwc"] = $attr;
  22. }
  23. else
  24. {
  25. //判断该水果代号是否在SESSION数组里面出现
  26. $attr = $_SESSION["gwc"];
  27. if(PanDuan($code,$attr))
  28. {
  29. //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
  30. /*foreach($attr as $v)
  31. {
  32. if($code == $v[0])
  33. {
  34. $v[1] = $v[1]+1;
  35. }
  36. }*/
  37. for($i=;$i<count($attr);$i++)
  38. {
  39. if($code == $attr[$i][])
  40. {
  41. $attr[$i][]++;
  42. }
  43. }
  44. $_SESSION["gwc"]=$attr;
  45. }
  46. else
  47. {
  48. //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
  49. $arr = array($code,);
  50. $attr[] = $arr;
  51. $_SESSION["gwc"]=$attr;
  52. }
  53.  
  54. }
  55.  
  56. var_dump($_SESSION["gwc"]);
  57.  
  58. //判断v是不是在arr里面出现
  59. function PanDuan($v,$arr)
  60. {
  61. $n = ;
  62. foreach($arr as $a)
  63. {
  64. if($v == $a[])
  65. {
  66. $n++;
  67. }
  68. }
  69.  
  70. if($n==)
  71. {
  72. return false;
  73. }
  74. else
  75. {
  76. return true;
  77. }
  78. }

jia.php

--------------------基础知识---------------------

  1. <?php
  2. session_start(); //开启SESSION
  3. ?>
  4.  
  5. <?php
  6.  
  7. 会话保持
  8. 1.session
  9. 特点:
  10. (1)有默认过期时间,大约15分钟
  11. (2)存储在服务器的,每个人存一份
  12. 3)可以存储任意类型数据
  13. 用法:
  14. 使用session的页面最上端需要加session_start();
  15. 赋值$_SESSION["uid"]="zhangsan";
  16. 取值$_SESSION["uid"];
  17.  
  18. 2.cookie
  19. 特点
  20. (1)存储在客户端的
  21. (2)没有过期时间
  22. (3)只能存储字符串类型的数据
  23. 用法:
  24. 赋值:setcookie("uid","lisi");
  25. 取值:$_COOKIE["uid"];
  26.  
  27. $_SESSION["uid"]="zhangsan";
  28.  
  29. setcookie("uid","lisi");
  30.  
  31. echo $_SESSION["uid"];
  32.  
  33. ?>

  

随机推荐

  1. EF 二级缓存 EFSecondLevelCache

    EFSecondLevelCache ======= Entity Framework .x Second Level Caching Library. 二级缓存是一个查询缓存.EF命令的结果将存储在 ...

  2. OC中的多继承

    可以间接实现,方法有: 1.消息转发 2.协议 3.组合模式 4.代理 5.分类 直接上code,分别说明集中方法的实现 一.消息转发 消息转发可以参考我的另外一篇博客:http://www.cnbl ...

  3. 解决安卓微信浏览器中location.reload 或者 location.href失效的问题

    在移动wap中,经常会使用window.location.href去跳转页面,这个方法在绝大多数浏览器中都不会 存在问题,但早上测试的同学会提出了一个bug:在安卓手机的微信自带浏览器中,这个是失效的 ...

  4. js修改伪类的值

    css文件 p.change:after { content: attr(data-content); } js文件 $(this).addClass('change').attr('data-con ...

  5. kubernetes&tensorflow

    谷歌内部--Borg Google Brain跑在数十万台机器上 谷歌电商商品分类深度学习模型跑在1000+台机器上 谷歌外部--Kubernetes(https://github.com/kuber ...

  6. linux的用户与用户组

    1.上面这个花花绿绿的图片,来自linxu 下etc/passwd文件. 我们来详细的看下这些都值得是什么东西,这些内容都是用冒号来分割的. 2.etc/shadow 3.对比一下这两个文件的权限,为 ...

  7. 子元素使用float 父元素撑开方法

    一个Div包含了多个子Div,并且子Div使用了浮动后,父Div确不能被撑开,如下图: 部分代码如下: 1 <style> 2   #div1{border:1px solid red;f ...

  8. Hibernate Hql 总结(2)---laoyang

    package com.etc.test; import java.util.Iterator; import java.util.List; import org.hibernate.Query; ...

  9. CSS之列表标签

    1 无序列表 无序列表,用来表示一个列表的语义,并且每个项目和每个项目之间,是不分先后的. ul就是英语unordered list,"无序列表"的意思. li 就是英语list ...

  10. sqlserver 数据库索引建立原则

    1.始终包含聚集索引 当表中不包含聚集索引时,表中的数据是无序的,这会降低数据检索效率.即使通过索引缩小了数据检索的范围,但由于数据本身是无序的,当从表中提取实际数据时,会产生频繁的定位问题,这也使得 ...