題組三的管理登入算是簡單的功能,並不需要有個管理者的資料表來做紀錄,因此這邊只要直接寫死帳密做檢查即可;另外,雖然題目中沒有提到,但為了避免每次要到後台時都要再一次輸入帳號密碼,這邊建議還是透過 session
或 cookie
來紀錄登入的狀態:
- 在
/back.php
撰寫登入表單html碼1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20<form action="?" method="post" style="width:35%;margin:20px auto;">
<h3 class='ct'>管理者登入</h3>
<table>
<tr>
<td>帳號:</td>
<td><input type="text" name="acc" ></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="pw"></td>
</tr>
</table>
<div class="ct"><input type="submit" value="登入"></div>
</form> - 在
back.php
檔案的最前方,撰寫表單的驗證程式,如果驗證成功則建立session來代表登入成功,如果失敗則建立一個錯誤訊息變數供登入表單使用。1
2
3
4
5
6
7
8
9include_once "./api/db.php";
if(!empty($_POST)){
if($_POST['acc']=='admin' && $_POST['pw']=='1234'){
$_SESSION['login']=1;
}else{
$error="<div class='ct' style='color:red'>帳號或密碼錯誤</div>";
}
} - 在
back.php
的功能選單中加入依照session
進行的判斷,因為合理來說,未登入的使用者應該是不能看到這些功能連結的
back.php1
2
3
4
5
6
7
8
9
10
11
12
13<div id="mm">
if(isset($_SESSION['login'])){
<div class="ct a rb" style="position:relative; width:101.5%; left:-1%; padding:3px; top:-9px;">
<a href="?do=tit">網站標題管理</a>|
<a href="?do=go">動態文字管理</a>|
<a href="?do=poster">預告片海報管理</a>|
<a href="?do=movie">院線片管理</a>|
<a href="?do=order">電影訂票管理</a>
</div>
<div class="rb tab">
........ - 在
/back.php
加上依據session
的有無而決定要載入那個檔案的語法
back.php1
2
3
4
5
6
7
8
9
10
11<div class="rb tab">
<?php
$do=$_GET['do']??'main';
$file="./back/{$do}.php";
if(file_exists($file)){
include $file;
}else{
include "./back/main.php";
}
?>
</div>