$_session (应用)

时间:2022-02-28 02:45:07

登录:

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

 <?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"]; ?>

  

随机推荐

  1. C&num; salt&plus;hash 加密

    一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...

  2. 利用开源jPlayer播放&period;flv视频文件

    最近工作中用到视频播放,在网上搜索对比了好几款开源播放插件后,觉得 jPlayer 是比较不错的,故作此记录! 接下来先快速的展示一下 利用jPlayer播放.flv视频的效果: <!DOCTY ...

  3. 母版页的 page&lowbar;load事件执行两次

    定义了一个母版页 Admin.master  部分代码如下 <body onload="LoadHight()"> <div> <!--公共的头部开始 ...

  4. eclipse中建python项目并运行

    1. Help → Install New Software 2.Enter http://pydev.org/updates 3.点击Click "Next" and &quot ...

  5. 关于异常的疑难解答:System&period;Runtime&period;InteropServices&period;COMException

    COMException exception is thrown when an unrecognized HRESULT is returned from a COM method call.&qu ...

  6. 9、第九节课jquery选择器jq2&comma;20151007

    1.表单选择器 2.not 里面不能加其他标签 $div p:not(not:disable)  错误的 $div p:not(:disable)  正确的 3.选择设置相应属性的标签项 $(&quo ...

  7. SqlServer2008&lpar;R2&rpar; 数据库使用外网IP实例连接服务器

    1.打开sql2008,使用windows身份登录 2.登录后,右键选择"属性".左侧选择"安全性",选中右侧的"SQL Server 和 Windo ...

  8. 关于OSError&colon; &lbrack;WinError 10038&rsqb; 在一个非套接字上尝试了一个操作。

    在使用socket的时候,写了一个while循环,就报错了.结果如下: OSError: [WinError 10038] 在一个非套接字上尝试了一个操作. 代码 import socket impo ...

  9. 开通博客的第一天上传我的C&num;基础笔记。

    1.索引器  string arrStr = "sddfdfgfh";  索引器的目的就是为了方便而已,可以在该类型的对象后面直接写[]访问该对象里面的成员  Console.Wr ...

  10. 潭州课堂25班:Ph201805201 django框架 第五课 自定义简单标签,包含标签,模型类创建,梳理类创建 &lpar;课堂笔记&rpar;

    自定义标签同自定义过渡器一样,要创建文件,在配置文件中以APP方法注册,对方法进注册,在 html 文件中引入,.. 由模板传参 在 在配置文件中改时区: 由视图函数传参 包含标签: 当有这种重复的代 ...