0%

[技能檢定]題組四 步驟9 製作帳號登出功能

題目雖然沒有明確要求要製作登出的功能,但是從示意圖和檢定現場展示的需求來看,有一個登出的功能會比較方便。

  1. 先是在首頁的功能連結上,針對會員登入的連結加入判斷,如果會員登入成功,則會員登入改成登出。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    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>";
    }
    ?>

  1. ./api/logout.php 中撰寫登出功能,這邊我們為了兼容前台會員登出及後台的管理者登出,因此使用switch..case的方式來分辨要登出的對像,如果是管理者登出,則只要清除管理者的session,如果是會員登出,則除了清除會員的session,也會一併清除會員的購物車session。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    include_once "db.php";

    switch($_GET['do']){
    case "mem":
    unset($_SESSION['mem']);
    unset($_SESSION['cart']);
    break;
    case "admin":
    unset($_SESSION['admin']);
    break;
    }

    to("../index.php");
  2. 後台有一個登出的按鈕,修改一下這個按鈕的內容來完成後台登出。
    back.php

    1
    <a href="./api/logout.php?do=admin" style="color:#f00;">登出</a>