一.在不同頁面之間顯示用戶的信息
二.控制登錄
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; } }