资源描述:
《uchome登陆机制分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、uchome登陆机制分析(一)uchome_ROOT/为uchome的根目录第一步:定位到uchome_ROOT/source/do_login.php,找到如下函数://同步获取用户源 if(!$passport=getpassport($username,$password)){ showmessage('login_failure_please_re_login','do.php?ac='.$_SCONFIG['login_action']); } 上示函数便是登陆的第一步处理函数,再次定位:uchome_ROOT/so
2、urce/function_common.php,找到如下函数://获取用户数据 functiongetpassport($username,$password){ global$_SGLOBAL,$_SC; $passport=array(); if(!@include_onceS_ROOT.'./uc_client/client.php'){ showmessage('system_error'); } $ucresult=uc_user_login($username,
3、$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/cl
4、ient.php/** *用户登陆检查 * *@paramstring$username 用户名/uid *@paramstring$password 密码 *@paramint$isuid 是否为uid *@paramint$checkques 是否使用检查安全问答 *@paramint$questionid 安全提问 *@paramstring$answer 安全提问答案 *@returnarray(uid/status,username,password,email) 数组第一项 1
5、 :成功 -1:用户不存在,或者被删除 -2:密码错 */ functionuc_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,
6、'user','login',array('username'=>$username,'password'=>$password,'isuid'=>$isuid,'checkques'=>$checkques,'questionid'=>$questionid,'answer'=>$answer)); returnUC_CONNECT=='mysql'?$return:uc_unserialize($return); } 因为是mysql,故,UC_API_FUNC的值为uc_api_mysql,通过call_user_fun
7、c()函数,将参数传给uc_api_mysql(),下面进入最关键的函数了:uchome_ROOT/uc_client/client.php=>uc_api_mysql()/** *MYSQL方式取指定的模块和动作的数据 * *@paramstring$model 请求的模块 *@paramstring$action 请求的动作 *@paramstring$args 参数(会加密的方式传送) *@returnmix */ functionuc_api_mysql($model,$action,$args
8、=array()){ //$model='user',$action='login', //$args=Array([username]=>test2[passw