用户名: 密码: 忘记密码? 注册
收藏此问题 发表新评论

请教作过UC方面的高手!!!!!

PHP code
function action_synlogin($get='') { if(time() - $get['time']<=3600){ !API_SYNLOGIN && exit(API_RETURN_FORBIDDEN); $account = $this->loadModel('member/account'); $o=$this->loadModel('utility/charset'); if (strtoupper(UC_DBCHARSET)<>"UTF8") $get['username'] = $o->local2utf($get['username'],'zh'); if ($data=uc_get_user($get['username'])){ list($uid, $uname, $email) = $data; } $account->PlugUserRegist('',$get['uid'],$get['username'],$get['password'],$email); }else{ exit(API_RETURN_FAILED); } }


这是SHOPEX 4.85 api/uc.php 关于同步用户的一段代码,本人刚刚接手这个网站程序,以前会一点ASP.NET没有学过PHP,
请高手给做一上注释,还有,($get='')关于这个参数为是什么意思?是不是如果没有值那么它的值就等于=""?
昵称: zhwedo0822  时间: 2011-06-09 16:24:18
这应该是登录用的代码吧,($get='')这个意思是,当直接调用action_synlogin()时,$get='',这是防止代码出现语法错误的。
php不难的,我当初也是这样转过来的。
昵称: hzhsky1985  时间: 2011-06-09 17:06:16
PHP code
$method = 'action_'.$action;

刚刚好好的研究了一下,

这个原本的文件有一个IF的控制语句,成功则执行,其内有一个继承类
PHP code
class ucCore extends shopCore{}

上面的函数就是在这个类里面。也就IF结果为真时,调用这个类里的函数。
PHP code
if (a==true){ class ucCore extends shopCore{ //这里是run函数 function run(){ $this->definevar(); require_once(CORE_DIR.'/lib/uc_client/client.php'); $code = $_GET['code']; parse_str($this->authcode($code, 'DECODE', UC_KEY), $get); if(MAGIC_QUOTES_GPC) { $get = $this->dstripslashes($get); } if(time() - $get['time'] > 3600) { exit('Authracation has expiried'); } if(empty($get)) { exit('Invalid Request'); } $action = $get['action']; $timestamp = time(); $method = 'action_'.$action; if(method_exists($this,$method)){ $this->$method($get); }else{ exit(API_RETURN_FAILED); } } function action_synlogin($get='') {} } $system = new ucCore(array()); $system->run(); }

现在我纠结的问题是,RUN()这个函数 执没行执行 action_synlogin()!!!
昵称: zhwedo0822  时间: 2011-06-09 17:27:56
看不懂下面的这个代码:
 
PHP code
$action = $get['action']; $timestamp = time(); $method = 'action_'.$action;//这个是什么意思? if(method_exists($this,$method)){ $this->$method($get); }

部分能明白,$action 这个变量获取传过来的数据,method_exists这个在网上查了一下,是检查函数用的,那这个IF是执行所有前坠为"action_"的函数吗?
昵称: zhwedo0822  时间: 2011-06-09 17:32:46
method_exists -- 检查类的方法是否存在

if(method_exists($this,$method)){
是检查用户所需的方法(由$get['action']提供)是否存在
昵称: xuzuning  时间: 2011-06-09 17:37:39
请问,是不是这样
如果$get['action']里面有一个login的类,那么if(method_exists($this,$method)){
是不是就是检查 下面有没有一个action_login的这样一个类,如果有,结果为true,
这样执行IF里面的代码段,
昵称: zhwedo0822  时间: 2011-06-09 17:50:02
发表评论
昵称:
内容:
验证: