$_session (应用)
登录:
封装类(用于连接数据库)代码中创建一个对象最好可以重复使用
- <?php
- class DBDA
- {
- public $host="localhost";
- public $uid = "root";
- public $pwd = "";
- public $dbname = "mydb";
- //成员方法
- public function Query($sql,$type=)
- {
- $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
- $r = $db->query($sql);
- if($type==)
- {
- return $r->fetch_all();
- }
- else
- {
- return $r;
- }
- }
- }
DBDA.class.php
1.登陆界面
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <form action="loginchuli.php" method="post">
- <div>用户名:<input type="text" name="uid" /></div>
- <div>密码:<input type="password" name="pwd" /></div>
- <input type="submit" value="登录" />
- </form>
- </body>
- </html>
login.php
2.登陆处理界面(纯PHP代码) 注意 使用session 判断 (目的不能绕过 登陆界面直接加载该页面)
- <?php
- session_start();
- include("../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- $uid = $_POST["uid"];
- $pwd = $_POST["pwd"];
- $sql = "select pwd from users where uid='{$uid}'";
- $attr = $db->Query($sql);
- $mm = $attr[][];
- if(!empty($pwd) && $pwd==$mm)
- {
- $_SESSION["uid"] = $uid;
- header("location:main.php");
- }
- else
- {
- echo "登录失败!";
- }
loginchuli.php
3.主界面
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <?php
- session_start();
- //echo $_SESSION["uid"];
- if(empty($_SESSION["uid"]))
- {
- header("location:login.php");
- exit;
- }
- $uid = $_SESSION["uid"];
- include("../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- $sql = "select name from users where uid='{$uid}'";
- $attr = $db->Query($sql);
- ?>
- <body>
- <?php
- echo "<h1>欢迎登录:{$attr[0][0]}</h1>";
- ?>
- </body>
- </html>
main.php
------------------------加入购物车------------------------------------
1.购物界面
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <table width="100%" border="" cellpadding="" cellspacing="">
- <tr>
- <td>名称</td>
- <td>价格</td>
- <td>产地</td>
- <td>库存</td>
- <td>操作</td>
- </tr>
- <?php
- include("../fengzhuang/DBDA.class.php");
- $db = new DBDA();
- $sql = "select * from fruit";
- $attr = $db->Query($sql);
- foreach($attr as $v)
- {
- echo "<tr>
- <td>{$v[]}</td>
- <td>{$v[]}</td>
- <td>{$v[]}</td>
- <td>{$v[]}</td>
- <td><a href='jia.php?code={$v[0]}'>加购物车</a></td>
- </tr>";
- }
- ?>
- </table>
- </body>
- </html>
shuiguo.php
2.加入购物车 操作 [注意数组处理][也可以把二维数组遍历 转化为 一维数组 一维数组 使用 转化为 字符串 储存在新数组里面 再把新的数组转化为字符串最后用 test 方法 (正则里面学的)检测是否存在
- <?php
- session_start();
- //将传过来的水果加到购物车
- $code = $_GET["code"];
- //$_SESSION["gwc"];
- //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
- //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
- //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
- if(empty($_SESSION["gwc"]))
- {
- //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
- $attr = array(
- array($code,)
- );
- $_SESSION["gwc"] = $attr;
- }
- else
- {
- //判断该水果代号是否在SESSION数组里面出现
- $attr = $_SESSION["gwc"];
- if(PanDuan($code,$attr))
- {
- //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
- /*foreach($attr as $v)
- {
- if($code == $v[0])
- {
- $v[1] = $v[1]+1;
- }
- }*/
- for($i=;$i<count($attr);$i++)
- {
- if($code == $attr[$i][])
- {
- $attr[$i][]++;
- }
- }
- $_SESSION["gwc"]=$attr;
- }
- else
- {
- //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
- $arr = array($code,);
- $attr[] = $arr;
- $_SESSION["gwc"]=$attr;
- }
- }
- var_dump($_SESSION["gwc"]);
- //判断v是不是在arr里面出现
- function PanDuan($v,$arr)
- {
- $n = ;
- foreach($arr as $a)
- {
- if($v == $a[])
- {
- $n++;
- }
- }
- if($n==)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
jia.php
--------------------基础知识---------------------
- <?php
- session_start(); //开启SESSION
- ?>
- <?php
- 会话保持
- 1.session
- 特点:
- (1)有默认过期时间,大约15分钟
- (2)存储在服务器的,每个人存一份
- (3)可以存储任意类型数据
- 用法:
- 使用session的页面最上端需要加session_start();
- 赋值$_SESSION["uid"]="zhangsan";
- 取值$_SESSION["uid"];
- 2.cookie
- 特点
- (1)存储在客户端的
- (2)没有过期时间
- (3)只能存储字符串类型的数据
- 用法:
- 赋值:setcookie("uid","lisi");
- 取值:$_COOKIE["uid"];
- $_SESSION["uid"]="zhangsan";
- setcookie("uid","lisi");
- echo $_SESSION["uid"];
- ?>
随机推荐
- EF 二级缓存 EFSecondLevelCache
EFSecondLevelCache ======= Entity Framework .x Second Level Caching Library. 二级缓存是一个查询缓存.EF命令的结果将存储在 ...
- OC中的多继承
可以间接实现,方法有: 1.消息转发 2.协议 3.组合模式 4.代理 5.分类 直接上code,分别说明集中方法的实现 一.消息转发 消息转发可以参考我的另外一篇博客:http://www.cnbl ...
- 解决安卓微信浏览器中location.reload 或者 location.href失效的问题
在移动wap中,经常会使用window.location.href去跳转页面,这个方法在绝大多数浏览器中都不会 存在问题,但早上测试的同学会提出了一个bug:在安卓手机的微信自带浏览器中,这个是失效的 ...
- js修改伪类的值
css文件 p.change:after { content: attr(data-content); } js文件 $(this).addClass('change').attr('data-con ...
- kubernetes&tensorflow
谷歌内部--Borg Google Brain跑在数十万台机器上 谷歌电商商品分类深度学习模型跑在1000+台机器上 谷歌外部--Kubernetes(https://github.com/kuber ...
- linux的用户与用户组
1.上面这个花花绿绿的图片,来自linxu 下etc/passwd文件. 我们来详细的看下这些都值得是什么东西,这些内容都是用冒号来分割的. 2.etc/shadow 3.对比一下这两个文件的权限,为 ...
- 子元素使用float 父元素撑开方法
一个Div包含了多个子Div,并且子Div使用了浮动后,父Div确不能被撑开,如下图: 部分代码如下: 1 <style> 2 #div1{border:1px solid red;f ...
- Hibernate Hql 总结(2)---laoyang
package com.etc.test; import java.util.Iterator; import java.util.List; import org.hibernate.Query; ...
- CSS之列表标签
1 无序列表 无序列表,用来表示一个列表的语义,并且每个项目和每个项目之间,是不分先后的. ul就是英语unordered list,"无序列表"的意思. li 就是英语list ...
- sqlserver 数据库索引建立原则
1.始终包含聚集索引 当表中不包含聚集索引时,表中的数据是无序的,这会降低数据检索效率.即使通过索引缩小了数据检索的范围,但由于数据本身是无序的,当从表中提取实际数据时,会产生频繁的定位问题,这也使得 ...