anwsion php
/app/文件夾下是action
全部action類都繼承/system/中的基類AWS_CONTROLLER
/models/文件夾下是models
models的基類是AWS_MODEL
/views/文件夾下是模板
框架核心代碼在/system/中 ajax
工具類
helper H 在 /system/class/ 數組
經常使用的方法類放在 /system/functions.inc.php
cookie
用戶登陸實現
action --- account/ajax/login_process/ login_process_action
model ---ucenter login
model ---account check_login session
用戶登陸加密方法 $password = md5(md5($password) . $salt); app
登陸的過程,先檢測ucenter是否登陸,若是沒有再檢測account是否登陸 框架
用戶登陸後model有兩個動做 update_user_last_login 和 setcookie_logout, setcookie_login 工具
update_user_last_login用來更新最後的登陸時間和最後的登陸ip
setcookie_logout 清理老的cookie _user_login ui
而後 setcookie_login 記錄登陸的cookie 參數分別爲 uid username password salt 過時時間
setcookie_login方法 建立cookie _user_login 值用方法 get_login_cookie_hash加密 參數分別爲username password salt uid this
get_login_cookie_hash的過程是 ,先加給密碼加鹽加密密碼compile_password ($password = md5(md5($password) . $salt);),再加
密整個數組encode_hash ,其中encode_hash用到了一個key ,解密時會用這個key解密
若是勾選了自動登陸 則登陸信息的cookie過時時間是 1年 若是沒有勾選則默認保存cookie
系統自動檢測cookie 若cookie存在則生成seession
記住用戶名的cookie是30天
有必要的話 會記住用戶名的cookie 爲r_uname 30天
----用戶退出動做
執行兩個動做 /app/account/main.php 的logout_action
$this->model('online')->logout(); // 在線列表退出
$this->model('account')->setcookie_logout(); // 清除 COOKIE
$this->model('account')->setsession_logout(); // 清除 Session
若是是管理員,管理員帳號退出 $this->model('account')->admin_logout();
用戶註冊過程研究 ,如何生成鹽
--------------------------------------------
account/ajax/register_process/
註冊過程當中
未經過檢測 則system/core目錄下的captcha類的方法 core_captcha::clear(); 刷新註冊嗎
以後 model 的account 的方法user_register進行註冊 ,其中user_register中 調用方法insert_user ,insert_user 包含鹽的生成
insert_user方法 ,先插入數據到users表 而後是插入users_attrib表 插入users_email_setting表 而後是更新
update_notification_setting_fields ,即插入表users_notification_setting 而後調用model search index 執行器方法push_index(
實際上就是更新users表中的字段user_name_fulltext )
若是註冊成功 則清除cookie setcookie_logout(); 清除session setsession_logout();
設置setcookie_login
研究修改密碼的過程
----------------------------------------------
模板/account/setting/security/ action account/ajax/modify_password/ modify_password_action 更新用戶數據user_edit