用户管理系统_【20201204】做个用户管理系统(18)——注册功能的实现(三)...
1. 介紹
1.1 介紹
福哥今天要帶著大家開發TFUMS系統的注冊功能的處理程序了。這個處理程序會調用模型user的add方法進行創建用戶的操作,模型user的add方法會先檢查用戶名是否被占用了,如果沒有被占用才能進一步完成創建用戶的操作,否則會報錯。
如果處理程序報錯的話,會返回錯誤碼和錯誤信息。這個錯誤碼需要我們定義好,一般情況下錯誤碼一個是7位或者8位的整型數字,這個數字分為兩段,前面一段作為模塊的計數區域,后面一段是模塊可能的錯誤信息對應的錯誤碼。
2. 錯誤碼信息
錯誤碼信息福哥給放到了Config.inc.php這個配置文件里面了。因為錯誤碼本身不需要寫成程序,只要約定俗成就可以了。所以,福哥使用一個塊注釋將錯誤碼信息框了起來。
/* * Error code and message * * 1001000 ( member ) * 1001001 - 錯誤請求 * 1001002 - 用戶名已經存在 * 1001003 - 創建用戶失敗 * */3. 注冊表單處理程序
注冊表單處理程序就是api/member/register.inc.php這個接口控制器,它主要負責檢查輸入數據,完成創建用戶的操作。
3.1 代碼
protected function process(){ $user = new user($this->tfphp); $post = $this->tfphp->getRequest()->post; $userName = $post->get("user"); $userPass = $post->get("pass"); $confirmUserPass = $post->get("confirmPass"); if($userName == "" || $userPass != $confirmUserPass){ return $this->tfphp->getResponse()->responseJSON_CM(200, 1001001, "錯誤請求"); } $ret = $user->add($userName, $userPass); switch ($ret){ case 1: return $this->tfphp->getResponse()->responseJSON_CM(200, 1001002, "用戶名已經存在"); break; case 2: return $this->tfphp->getResponse()->responseJSON_CM(200, 1001003, "創建用戶失敗"); break; } $newId = $user->getLastUserID(); return $this->tfphp->getResponse()->responseJSON_CM(200, 0, "OK", array( 'userid'=>$newId, ));}4. 注冊表單JS程序
福哥還對JS程序進行了一些調整,主要是對接處理程序的邏輯,使JS程序可以正確響應處理程序返回的結果。
4.1 代碼
$('form').form({ url: "api/member/register", method: "post", validations: [ {type:"empty", name:"user", msg:"請填寫用戶名"}, {type:"min", value:2, name:"user", msg:"用戶名最少2個字"}, {type:"max", value:20, name:"user", msg:"用戶名最多20個字"}, {type:"re", value:/^[^\`\~\!\@\#\$\%\^\&\*\(\)\[\]\{\}\-\_\+\|\\\:\;\"\'\\,\.\?\/]/, name:"user", msg:"用戶名不能以符號開頭"}, {type:"empty", name:"pass", msg:"請填寫密碼"}, {type:"min", value:6, name:"pass", msg:"密碼最少6個字"}, {type:"empty", name:"confirmPass", msg:"請填寫確認密碼"} ], onValidationManual: function(form){ if($(form).find('[name="pass"]').val() != $(form).find('[name="confirmPass"]').val()){ this.postValidationError(form, "pass", "兩次輸入的密碼不一樣"); return false; } }, onSuccess: function (d) { if(d.errcode == 0){ document.location = 'server->BASE_URI %>'; } else{ $('form').tips({ text:d.errmsg }); } }, onError: function (d) { $('form').tips({ text:"服務器響應錯誤" }); }, onValidationError: function (form, name, msg) { $('form').tips({ text:msg }); $('form').find('[name="'+ name +'"]').focus(); }});5. 講解
5.1 注冊表單處理程序
首先通過post拿到表單提交的數據,包括用戶名、密碼、確認密碼。
接著檢查表單提交的數據的合法性,如果不合法就報一個“錯誤請求”即可,因為正常情況下JS程序就會檢查這些數據了,所以到處理程序這里還會有不合法情況基本都是黑客所為。
嘗試使用模型user的add方法創建指定的用戶,因為add方法的結果的多態的,所以使用switch判斷結果碼并提示錯誤信息。
如果add方法返回0則表示創建用戶成功了,直接返回0即可。
5.2 注冊表單JS程序
在onSuccess方法里判斷,如果結果碼為0就表示成功了,跳轉頁面到首頁去。否則就是處理錯誤了,根據結果碼和結果信息顯示錯誤提示信息給用戶。
6. 總結
今天福哥帶著大家完成了注冊功能的最后一步,我們通過模型user的add方法實現了用戶注冊的功能。這是一個范本功能,也就是說后面做其他表單功能的時候就會簡單多了,所謂舉一反三就是這個道理了。
不過,注冊頁面福哥還欠大家一個驗證碼功能沒有實現,這個需要用到PHP的GD庫了。
下一課,福哥將帶著童鞋們制作表單的圖片驗證碼功能。
【20201203】做個用戶管理系統(17)——注冊功能的實現(二)
【20201202】做個用戶管理系統(16)——注冊功能的實現(一)
免費看文章,自己學技術
每一篇文章都是福哥一個字一個字地敲出來的,都是福哥原創的。
每一篇文章都是經過了福哥的反復驗證的,都是可以正常使用的。
總結
以上是生活随笔為你收集整理的用户管理系统_【20201204】做个用户管理系统(18)——注册功能的实现(三)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朴素贝叶斯算法_机器学习第三篇:详解朴素
- 下一篇: 怎样用c语言写超市管理程序,C语言超市收