一.在不同页面之间显示用户的信息
二.控制登录
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; } }