$_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"]; ?>
随机推荐
- form 表单基础知识
<form method=" name="one" action="http://www.battlenet.com.cn/zh/"> & ...
- SOD让你的旧代码焕发青春
最近接手了一个旧的系统,各种陈旧的问题比较多,其中最棘手的就是操作数据库的部分,具体如下: 1.核心库是一个最后修改时间为2008年的库,先不说有多陈旧,现在这个库只是一个DLL文件,没有源码,也已经 ...
- Javascript动态执行JS(new Function与eval比较)
new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接 ...
- weiphp踩坑记录
记录使用weiphp过程中遇到的问题及解决办法: 1.按照网上的教程创建插件怎么没有效果?replyText没有回复信息? 后台清除缓存即可!
- Noise Contrastive Estimation
Notes from Notes on Noise Contrastive Estimation and Negative Sampling one sample: \[x_i \to [y_i^0, ...
- pandas read table
http://pandas.pydata.org/pandas-docs/stable/10min.html import pandas as pd res = pd.read_table(" ...
- Redis连接
using System; using System.Configuration; using StackExchange.Redis; namespace Redis { public sealed ...
- cpp 调用python
在用cpp调用python时, 出现致命错误: no module named site , 原因解释器在搜索路径下没有找到python库.可以在调用Py_Initialize前,调用 Py_Se ...
- 计算机常用dos命令
一.简单的dos命令 win+R ------打开"运行"窗口 cmd ------回车进入"dos"命令窗口 ipconfig ------查看本机ip地址 ...
- juery学习总结(一)——juery选择器
juery在工作中经常使用,遇到不会的问题往往百度一下,事后就忘.使用到现在也感觉不到有什么提高,为了每天进步一点点,从今天起抽时间记录下对juery的学习. 学习之前,首先要了解什么是网页元素,网页 ...