題目雖然沒有明確要求要製作登出的功能,但是從示意圖和檢定現場展示的需求來看,有一個登出的功能會比較方便。
- 先是在首頁的功能連結上,針對會員登入的連結加入判斷,如果會員登入成功,則會員登入改成登出。
1
2
3
4
5
6
7
8
9
10
11
12
13
if(isset($_SESSION['user'])){
echo "<a href='./api/logout.php?do=mem'>登出</a> |";
}else{
echo "<a href='?do=login'>會員登入</a> |";
}
if(isset($_SESSION['admin'])){
echo "<a href='back.php'>返回管理</a>";
}else{
echo "<a href='?do=admin'>管理登入</a>";
}
在
./api/logout.php
中撰寫登出功能,這邊我們為了兼容前台會員登出及後台的管理者登出,因此使用switch..case的方式來分辨要登出的對像,如果是管理者登出,則只要清除管理者的session,如果是會員登出,則除了清除會員的session,也會一併清除會員的購物車session。1
2
3
4
5
6
7
8
9
10
11
12
13include_once "db.php";
switch($_GET['do']){
case "mem":
unset($_SESSION['mem']);
unset($_SESSION['cart']);
break;
case "admin":
unset($_SESSION['admin']);
break;
}
to("../index.php");後台有一個登出的按鈕,修改一下這個按鈕的內容來完成後台登出。
back.php1
<a href="./api/logout.php?do=admin" style="color:#f00;">登出</a>