Board logo

標題: 13-3-2 試場大門 [打印本頁]

作者: 小誌    時間: 2011-4-24 15:18     標題: 13-3-2 試場大門

13-3-2   試場大門
我們要讓學生於網路線上進行學習成果測驗,首先要作的事就是先確認前來參加測驗考試的學生身分,所以我們必須先設計一個可以驗證學生身分的『線上考試-試場大門』網頁,確認要參加測驗的學生是否在我們的受測名單中,這個網頁中含有一個身分確認的網頁表單讓受測學生填寫姓名與學號,並且含有一支PHP程式與另一支檢查表單欄位受否有填寫資料的VB Script 程式,受測學生按下表單中的『進入考場』按鈕後,將會先啟動VB Script 程式檢驗是否缺填相關的資料,接著這些資料將會被送至PHP程式中,PHP程式將會讀取資料庫中的受測學生名單資料與自網頁表單接收到的學生資料比對以確認前來受測學生的資格,如果確認受測學生的身分無誤後就會進入『線上考試-試卷網頁』。

現在我們就來製作這個含有輸入資料檢查、身分驗證檢查的試場大門網頁『indoor.php』:
[attach]5830[/attach]
圖13-13 indoor.php。

編號欄位欄位名稱表單元件
姓名studentname單行文字輸入方塊
學號number單行文字輸入方塊

將按下表單中的『進入考場』按鈕<input type="button" value="進入考場">後,將會先啟動VB Script 程式中的檢驗函數『datacheck』檢驗是否缺填相關的資料,然後觸發網頁中的PHP程式進行身分驗證。
作者: 小誌    時間: 2011-4-24 15:20

檢查資料欄位是否填寫資料的VB script 程式:
  1. <script language="vbscript">
  2. <!--
  3. <!-- 檢查有沒有輸入資料 -->
  4. Function datacheck

  5. <!--利用VB 檢驗字串長度的Len函數驗證欄位資料是否填寫-->
  6. IF Len(document.indoor.studentname.value)=0 or
  7. Len(document.indoor.number.value)=0 then
  8. <!--如果有欄位沒有填寫則秀出警告視窗-->
  9. msg="請輸入資料!"
  10. MsgBox msg,vbExclamation,"錯誤!"
  11. Exit Function
  12. End IF
  13. <!--如果欄位資料都有填寫則觸發身分驗證的PHP程式-->
  14. indoor.Submit
  15. End Function
  16. -->
  17. </script>
複製代碼
在這個檢驗資料欄位是否有填寫資料的VB Script程式中,我們利用VB 檢驗字串長度的Len函數驗證欄位資料是否填寫,如果有任一個欄位沒有填寫資料將會出現下圖的警告視窗:
[attach]5831[/attach]
圖13-14  必須填入受測者資料。
作者: 小誌    時間: 2011-4-24 15:21

身分驗證
雖然說我們在資料欄位中填寫了姓名與學號資料,但是程式還是會再核對一次身分呦!如果前來受測學生並沒有在資料庫的受測學生名單資料中,那麼就會出現提示訊息,提醒前來的受測的學生是否有誤填資料,並要求重新填寫資料。
[attach]5832[/attach]
圖13-15  查無受測者資料。
  1. //如果Indoor表單傳來的學號、姓名資料不是空白的
  2. //就進行與資料庫中受測學生資料進行比對
  3. IF (($studentname!="") && ($number!="")):
  4. //連結MySQL Server
  5.     $conn = mysql_connect("localhost", "root", "12345a");
  6. //選擇資料庫
  7.     mysql_select_db("exam", $conn);
  8. //指定提取資料的校對字元表
  9.     mysql_query("set character set big5");
  10. //提取資料的SQL命令字串
  11.    $SQL="SELECT * From student where 學號='" .$number . "' and 姓名='" .$studentname . "'";
  12. //進行資料查詢
  13. $RS=mysql_query($SQL);
  14. //如果姓名學號驗證無誤就進入試卷網頁
  15.    if ($Result=mysql_fetch_array($RS))
  16. {
  17. header("Location: question.php?" . $_SERVER["QUERY_STRING"]);
  18. }
  19. else
  20. {   
  21. //如果找不到對應的學號與姓名就顯示錯誤訊息
  22.    IF ($Msg=="")
  23.    $Msg="姓名或學號輸入有錯誤!";
  24. }
  25. EndIf;
複製代碼

作者: kingvincent    時間: 2015-10-17 09:25

請問:
1.檢查資料欄位是否填寫資料,若是用JavaScript語法要如何寫?
2.vbscript有沒有限制使用那一種瀏覽器?
作者: kingvincent    時間: 2015-10-22 20:55

回復 2# 小誌

抱歉!問個蠢問題,indoor.Submit這個語法何意?
作者: 小誌    時間: 2015-10-23 23:13

回復  小誌

抱歉!問個蠢問題,indoor.Submit這個語法何意?
kingvincent 發表於 2015-10-22 20:55

名稱為Indoor的表單送出表單內個欄位的資料
作者: kingvincent    時間: 2015-10-24 08:45

回復 6# 小誌

收到,感謝您的回覆!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)