php部分--session的三种用法
Posted llzhang123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php部分--session的三种用法相关的知识,希望对你有一定的参考价值。
一.在不同页面之间显示用户的信息
二.控制登录
1.登录页面
<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>
2、登录处理页面
<?php
session_start();
include("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[0][0]; //取出密码
if(!empty($pwd) && $pwd==$mm)
{
$_SESSION["uid"] = $uid; //如果登录成功,把取到的用户名放到session保存,跳转到主页面
header("location:main.php");
}
else
{
echo "登录失败!";
}
3、主页面
</head>
<?php
session_start();
if(empty($_SESSION["uid"])) //判断session里面是不是存储到值,如果没有存储,让其跳转到登录界面
{
header("location:login.php");
exit;
}
$uid = $_SESSION["uid"]; //如果能够取到,通过session取到的用户名,显示下面的信息
include("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>";
?>
三、做购物车
1.调水果表的信息
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>名称</td>
<td>价格</td>
<td>产地</td>
<td>库存</td>
<td>操作</td>
</tr>
<?php
include("DBDA.class.php");
$db = new DBDA();
$sql = "select * from fruit";
$attr = $db->Query($sql);
foreach($attr as $v)
{
echo "<tr>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td><a href=‘jia.php?code={$v[0]}‘>加购物车</a></td> //添加购物车选项
</tr>";
}
?>
</table>
2.将传过来的水果加到购物车
三条思路:
//1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
//2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
//3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
<?php
session_start();
$code = $_GET["code"];
if(empty($_SESSION["gwc"]))
{
//1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
$attr = array(
array($code,1) //建立一个二维数组,并在里面的一位数组中添加代号和数量1
);
$_SESSION["gwc"] = $attr; //把新建立的二维数组,添加到session中
}
else
{
//判断该水果代号是否在SESSION数组里面出现
$attr = $_SESSION["gwc"]; //如果session里面有内容,则把内容给一个二维数组
if(PanDuan($code,$attr)) //下面见了一个PanDuan的方法,用来判断代号是不是已经存在session里
{
//3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
/*foreach($attr as $v)
{
if($code == $v[0])
{
$v[1] = $v[1]+1;
}
}*/
for($i=0;$i<count($attr);$i++) //取数组的长度用count()
{
if($code == $attr[$i][0])
{
$attr[$i][1]++;
}
}
$_SESSION["gwc"]=$attr;
}
else
{
//2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
$arr = array($code,1);
$attr[] = $arr;
$_SESSION["gwc"]=$attr;
}
}
var_dump($_SESSION["gwc"]);
//判断v是不是在arr里面出现
function PanDuan($v,$arr) //判断方法
{
$n = 0;
foreach($arr as $a)
{
if($v == $a[0])
{
$n++;
}
}
if($n==0)
{
return false;
}
else
{
return true;
}
}
以上是关于php部分--session的三种用法的主要内容,如果未能解决你的问题,请参考以下文章