溫瑞烘老師的教學歷程檔案(Teaching ePortfolio) - 104-1-資料庫程式設計-進階 - 第6週-班級代碼資料
 

資訊管理系
副教授
温瑞烘


歷程檔案 Portfolio


關於我 About Me

第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);                   
  }

?>




 

全部共 0則留言
登入帳號密碼代表遵守學術網路規範
 


文章分類 Labels

 


最新文章 Top10

中華科技大學數位化學習歷程 - 意見反應