第6週-班級代碼資料 與上學期的兩支程式相同, 介面如下ep.cust.edu.tw/a.pdf 程式主結構如下 <?php include "epconfig.php"; $command=$_POST["command"]; if ($command=="班級代碼資料" || $command=="返回") { // 請注意這裡的安全機制 display_first_page($conn); } elseif ($command=="查詢") { display_search_page($conn); } elseif ($command=="新增") { display_insert_page($conn); display_first_page($conn); } elseif ($command=="更新") { display_modify_page($conn); } elseif ($command=="刪除") { display_delete_page($conn); display_first_page($conn); } elseif ($command=="確認") { display_confirm_page($conn); display_first_page($conn); } mysqli_close($conn); ?> 這裡的安全機制限定使用者必須從入口進入, 也就是登入成功之後才能看到選單 if ($command=="班級代碼資料" || $command=="返回") { // 請注意這裡的安全機制 display_first_page($conn); } 如果沒有從入口進入, 想直接執行 http://127.0.0.1/myep/epclass.php 則不被允許 其方式是在 eplogin.php中傳入登入成功後的按鈕value值, 如下所示: if ($ident=="1") { // 系統管理者管理介面 echo "<html><head><title>學生學習歷程網登入頁面</title> <link rel='stylesheet' type='text/css' href='style.css'> </head>"; $pglist=array("epclass.php","epstmd.php","epheader.php","eppost.php"); $namelist=array("班級代碼資料","學生基本資料","上傳網頭資料","發布最新消息"); foreach ($pglist as $key => $pg) { $name=$namelist[$key]; echo "<tr><form method='post' action='$pg' target='middle' ><td> <input class='cmd1' type='submit' name='command' value='$name'> </td></form></tr>"; } echo "</table></center></body></html>"; } 在授權的程式中, 首先取得按鈕的 value值, 再判斷是否從入口進入, 如果不是則不允許執行該程式 完整範例(epclass.php): 所有 sql 命令必須自行填上 <?php include "epconfig.php"; $command=$_POST["command"]; if ($command=="班級代碼資料" || $command=="返回") { display_first_page($conn); } elseif ($command=="查詢") { display_search_page($conn); } elseif ($command=="新增") { display_insert_page($conn); display_first_page($conn); } elseif ($command=="更新") { display_modify_page($conn); } elseif ($command=="刪除") { display_delete_page($conn); display_first_page($conn); } elseif ($command=="確認") { display_confirm_page($conn); display_first_page($conn); } mysqli_close($conn);
function display_first_page($conn) { echo "<html><head><title>班級代碼資料</title> <link rel='stylesheet' type='text/css' href='style.css'> </head><body><center> <table><form method='post' action=''> <tr class='alt0'><td colspan=4>班級代碼資料</td></tr> <tr><td class='alt1'>班級代碼</td> <td><input type='text' name='class_no' /></td></tr> <tr><td class='alt1'>班級名稱</td> <td><input type='text' name='class_name' /></td></tr></table> <input class='cmd' type='submit' name='command' value='查詢'> <input class='cmd' type='submit' name='command' value='新增'> </form></center></body></html>"; } function display_search_page($conn) { $class_no=trim($_POST["class_no"]); $class_name=trim($_POST["class_name"]); if ($class_no=="") $class_no="%"; else $class_no="%".$class_no."%"; if ($class_name=="") $class_name="%"; else $class_name="%".$class_name."%"; // 準備查詢命令按班級學號排序 $sql ="select * from epclass where ..................................."; $result=mysqli_query($conn,$sql); echo "<html><head><title>班級代碼資料</title> <link rel='stylesheet' type='text/css' href='style.css'> </head><body><center> <table><form method='post' action=''> <tr class='alt0'><td colspan=3>班級代碼資料</td></tr> <tr class='alt1'><td>班級代碼</td><td>班級名稱</td><td>選擇</td></tr>"; $cnt=0; while ($myrow=mysqli_fetch_array($result)) { $class_no=$myrow["class_no"]; $class_name=$myrow["class_name"]; $bg=$cnt % 2 + 2; echo "<tr class='alt$bg'><td>$class_no</td><td>$class_name</td> <td><input type='radio' name='class_no' value='$class_no'></td></tr>"; $cnt++; } echo "</table> <input class='cmd' type='submit' name='command' value='更新'> <input class='cmd' type='submit' name='command' value='刪除' onclick=\"return confirm('?????確定要刪除嗎?????');\" > <input class='cmd' type='submit' name='command' value='返回'> </center></body></html>"; }
function display_insert_page($conn) { $class_no=trim($_POST["class_no"]); $class_name=trim($_POST["class_name"]); if ($class_no=="" || $class_name=="") { display_first_page($conn); exit(); } $sql="insert into epclass values(.........................)"; mysqli_query($conn,$sql); }
function display_delete_page($conn) { $class_no=trim($_POST["class_no"]); if ($class_no=="") { display_first_page($conn); die(); } $sql="delete from epclass where ............................... "; mysqli_query($conn,$sql); }
function display_modify_page($conn) { $class_no=$_POST["class_no"]; if ($class_no=="") { display_first_page($conn); die(); } $sql="select * from epclass where class_no='$class_no' "; $result=mysqli_query($conn,$sql); $myrow=mysqli_fetch_array($result); $class_name=$myrow["class_name"]; echo "<html><head><title>班級代碼資料</title> <link rel='stylesheet' type='text/css' href='style.css'> </head><body><center> <table> <form method='post' action=''> <tr class='alt0'><td colspan=4>班級代碼資料</td></tr> <tr><td class='alt1'>班級代碼</td> <td><input type='text' name='class_no' value='$class_no' readonly/></td> <tr><td class='alt1'>班級名稱</td> <td><input type='text' name='class_name' value='$class_name' /></td></tr> </table> <input class='cmd' type='submit' name='command' value='確認' onclick=\"return confirm('?????確定更新嗎?????');\" /> <input class='cmd' type='submit' name='command' value='返回'> </form></center></body></html>"; }
function display_confirm_page($conn) { $class_no=trim($_POST["class_no"]); $class_name=trim($_POST["class_name"]); $sql="update epclass set .................. where .........................................'"; mysqli_query($conn,$sql); }
?>