Board logo

標題: 10-2-4 處理登錄資料 [打印本頁]

作者: 小誌    時間: 2011-4-22 02:43     標題: 10-2-4 處理登錄資料

10-2-4   處理登錄資料
終於來到我們「addin.php」程式撰寫的最後階段,我們在驗證「加入會員」表單中的欄位資料,都有填寫及開啟資料庫後,接下來就是要將接收自「加入會員」表單中的欄位資料寫入資料庫檔案中。

在將會員資料寫入資料庫之前,還要先判斷一下新會員所登錄的「登入名稱」是否已經有人使用而重複:
  1. //建立查詢字串用以判斷登入名稱是否重複
  2. $SQL="Select ID From membertest Where ID='" . $ID . "'";
  3. $RS=mysql_query($SQL);
  4. if (!mysql_fetch_array($RS))
  5. {
  6. //如果登入名稱沒有人使用則寫入會員資料
  7. $sql = "Insert Into membertest (ID, Password, Name, Email) Values ('";
  8. $sql = $sql . $ID . "', '";
  9. $sql = $sql . $Password . "', '";
  10. $sql = $sql . $Name . "', '";
  11. $sql = $sql . $Email . "')";
  12. mysql_query($sql);
  13. msg("線上加入會員成功\!!");
  14. }
  15. else  //登入名稱重複
  16. {
  17. msg("您的登入名稱 $ID 已經有人使用!!");
  18. }
複製代碼
若「登入名稱」有人使用了,同樣要呼叫「msg」副程式來產生一個「您的登入名稱XXX已經有人使用!!」的錯誤訊息網頁,如下圖所示:
[attach]5719[/attach]
圖10-11  「登入名稱」重複。

如果新會員登錄的資料都沒有問題,則使用mysql_query()函數執行串接的SQL指令敘述,將新會員的資料寫入資料庫。
作者: 小誌    時間: 2011-4-22 02:43

addin.php
  1. <?
  2. //判斷欄位資料是否為空白
  3. //若欄位資料空白則呼叫msg副程式
  4. if (empty($_REQUEST["Name"]))
  5. {
  6. msg("您忘記輸入大名啦!!");
  7. }
  8. else if(empty($_REQUEST["Email"]))
  9. {
  10. msg(!"您忘記輸入E-Mail啦!!");
  11. }
  12. else if(empty($_REQUEST["ID"]))
  13. {
  14. msg("您忘記填寫登入名稱啦!!");
  15. }
  16. else if(empty($_REQUEST["Password"]))
  17. {
  18. msg("您忘記填寫登入密碼啦!!");
  19. }
  20. else
  21. {
  22. //接收來自『加入會員』表單中的欄位資料
  23. $Name = $_REQUEST["Name"];
  24. $Email = $_REQUEST["Email"];
  25. $ID = $_REQUEST["ID"];
  26. $Password = $_REQUEST["Password"];
  27. }

  28. //連結MySQL Server
  29.     $conn = mysql_connect("127.0.0.1", "root", "12345a");
  30. //選擇資料庫
  31.     mysql_select_db("Member", $conn);      
  32. //指定提取資料的校對字元表
  33.     mysql_query("set character set big5");
  34. //建立查詢字串用以判斷登入名稱是否重複
  35. $SQL="Select ID From membertest Where ID='" . $ID . "'";
  36. $RS=mysql_query($SQL);

  37. if (!mysql_fetch_array($RS))
  38. {
  39. //如果登入名稱沒有人使用則寫入會員資料
  40. $sql = "Insert Into membertest (ID, Password, Name, Email) Values ('";
  41. $sql = $sql . $ID . "', '";
  42. $sql = $sql . $Password . "', '";
  43. $sql = $sql . $Name . "', '";
  44. $sql = $sql . $Email . "')";
  45. mysql_query($sql);
  46. msg("線上加入會員成功\!!");
  47. }
  48. else  //登入名稱重複
  49. {
  50. msg("您的登入名稱 $ID 已經有人使用!!");
  51. }
  52. ?>

  53. <?
  54. function msg($info)
  55. {
  56. ?>
  57. <HTML>
  58. <head>
  59. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  60. <title>加入會員狀況</title>
  61. </head>
  62. <BODY>
  63.    <CENTER>
  64.    <H2><Font Color=red><?=$info?><HR size="1" color="#FF0066">
  65.    <FORM>
  66.    <INPUT Type=Button Value="上一頁" OnClick="history.back();">
  67.    </FORM>
  68.    </CENTER>
  69.    </font>
  70. </BODY>
  71. </HTML>
  72. <?
  73. exit();   
  74. }
  75. ?>
複製代碼

作者: yuoo    時間: 2012-12-21 07:31

小誌大哥請問2個疑問
先斷判表單再連結資料庫和先連結資料庫再判斷表單有什麼差異嗎?
$_REQUEST 不是能先宣告成變數再判斷表單內容 範例卻是先用 $_REQUEST 在判斷表單 二者之間
判斷有什麼差異呢?




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