uchome_ROOT/uc_client/client.php => uc_api_mysql()
PHP代码
-
-
- function
uc_api_mysql($model, $action, $args=array()) { -
//$model = ’user’,$action= ’login’, -
//$args = Array ( [username] => test2 [password] => test [isuid] => 0 [checkques] => 0 [questionid] => [answer] => ) -
global $uc_controls; -
if(empty($uc_controls[$model])) { -
//UC_ROOT uc_client/ -
include_once UC_ROOT.’./lib/db.class.php’; -
include_once UC_ROOT.’./model/base.php’; -
include_once UC_ROOT.”./control/$model.php”; -
eval_r(“\$uc_controls['$model'] = new {$model}control();”); -
//uc_client/control/user.php,usercontrol()类(继承至base基类)实例化 -
} -
if($action{0} != ’_') { -
$args = uc_addslashes($args, 1, TRUE); -
$action = ’on’.$action;//onlogin,usercontrol()中的方法,可以考虑改造此函数以实现预定功能 -
$uc_controls[$model]->input = $args;//base.php,base基类的方法 -
//return Array ( [0] => 3 [1] => test2 [2] => test [3] => test@12.com [4] => 0 ) -
-
return $uc_controls[$model]->$action($args);//返回预定数组,供调用函数分析 -
} else { -
return ”; -
} - }
我们看看usercontrol类的onlogin()方法:
uchome_ROOT/uc_client/control/user.php
PHP代码
- //note
public 外部接口 登陆接口 - function
onlogin() { -
$this->init_input(); -
$isuid = $this->input(‘isuid’); -
$username = $this->input(‘username’); -
$password = $this->input(‘password’); -
$checkques = $this->input(‘checkques’); -
$questionid = $this->input(‘questionid’); -
$answer = $this->input(‘answer’); -
if($isuid) { -
$user = $_ENV['user']->get_user_by_uid($username); -
} else { -
$user = $_ENV['user']->get_user_by_username($username); -
} -
//这部分即可改动 -
$passwordmd5 = preg_match(‘/^\w{32}$/’, $password) ? $password : md5($password); -
//note 用户名不存在 -
if(empty($user)) { -
$status = -1; -
} elseif($user['password'] != md5($passwordmd5.$user['salt'])) { -
$status = -2; -
} elseif($checkques && $user['secques'] != ” && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) { -
$status = -3; -
} else { -
$status = $user['uid']; -
} -
$merge = $status != -1 && !$isuid && $_ENV['user']->check_mergeuser($username) ? 1 : 0; -
return array($status, $user['username'], $password, $user['email'], $merge); - }