$_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"]; ?>
随机推荐
- Bootstrap JavaScript插件
在bs3.X中,提供了12种JavaScript插件,分别是:动画过渡(Transition).模态弹窗(Modal).下拉菜单(Dropdown).滚动侦测(Scrollspy).选项卡(Tab ...
- bzoj1415[NOI2005]聪聪和可可-期望的线性性
这道题之前我写过一个巨逗比的写法(传送门:http://www.cnblogs.com/liu-runda/p/6220381.html) 当时的原因是这道题可以抽象出和"绿豆蛙的归宿&qu ...
- php+swoole+websocket
//创建websocket服务器对象,监听0.0.0.0:9502端口 $ws = new swoole_websocket_server("0.0.0.0", 9502); // ...
- 继承 原生js 与 $.extend(true,default,opts||{});
$.extend(true,default,opts||{}); var obj1={ name:'liu', sex:'m', work:'pc' } var obj2={ sex:'w' } va ...
- MVC重定向-自定义路由篇
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.Ignore ...
- [Unreal]学习笔记之材质说明
取消蓝图中的连接线:Alt+鼠标左键 在蓝图中,通过按住1,2,3,4加鼠标左键,可以快速生成1,2,3,4维的向量 材质和材质实例的区别:使用一个母材质,可以创建出多种场景中的材质实例:每次修改母材 ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- VS2015 调试Web项目 遭遇 HTTP 错误 500.23 - Internal Server Error
此错误是因为项目使用的托管管道模式有问题,将集成改为传统即可 选中项目 进入项目属性 ,如图界面
- 关于.dll' could not be found 的问题以及解决方案
最近做项目遇到这个问题,搞了半天,也没有解决. 后台看看了生成的详细信息,提示引用的版本不统一,最后移除,再添加一个相同版本的Mysql.Data.Mysql.Data.Entity.EF6 就解决了 ...
- oracle服务起不来以及无法监听问题解决
改问题是在搭建起一个很早之前的数据库的时候碰见的,虽然这个问题网上已经有很多相关的帖子,但因最近碰见多次这样的问题,特此简单记录: 1.最开始碰见的问题是:The listener supports ...