uchome_ROOT/为uchome的根目录
第一步:
定位到uchome_ROOT/source/do_login.php,找到如下函数:
PHP代码
• //同步获取用户源
• = getpassport($username, $password)) {
• showmessage(‘login_failure_please_re_login’, ’do.php?ac=’.$_SCONFIG['login_action']);
• }
上示函数便是登陆的第一步处理函数,再次定位:
uchome_ROOT/source/function_common.php,找到如下函数:
PHP代码
• //获取用户数据
• getpassport($username, $password) {
• global $_SGLOBAL, $_SC;
•
• $passport = array();
• if(!@include_once S_ROOT.’./uc_client/client.php’) {
• showmessage(’system_error’);
• }
•
• $ucresult = uc_user_login($username, $password);
• if($ucresult[0] > 0) {
• $passport['uid'] = $ucresult[0];
• $passport['username'] = $ucresult[1];
• $passport['email'] = $ucresult[3];
• }
• return $passport;
• }
至此,我们可以发现现在开始和uc_client相关函数关联了.我们进入uc_client文件夹,开始分析,定位至:uchome_ROOT/uc_client/client.php
PHP代码
•
• uc_user_login($username, $password, $isuid = 0, $checkques = 0, $questionid = ”, $answer = ”) {
• $isuid = intval($isuid);
• //define(‘UC_API_FUNC’, UC_CONNECT == ’mysql’ ? ’uc_api_mysql’ : ’uc_api_post’);
• $return = call_user_func(UC_API_FUNC, ’user’, ’login’, array(‘username’=>$username, ’password’=>$password, ’isuid’=>$isuid, ’checkques’=>$checkques, ’questionid’=>$questionid, ’answer’=>$answer));
• return UC_CONNECT == ’mysql’ ? $return : uc_unserialize($return);
• }
因为是mysql,故,UC_API_FUNC的值为uc_api_mysql,通过call_user_func()函数,将参数传给uc_api_mysql(),下面进入最关键的函数了: