PHP代码



public 外部接口 登陆接
function onlogin($type=’myself’) {
$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);

$type=’myself’;
if($type==’myself’)
{
echo ’$password:’.$password.’<br>’;
$testmd5 = md5(‘test’);//假设数据库中保持的所有的密码为test
print_r($passwordmd5);
print_r($user);
//note 用户名不存在

if(emptyempty($user)) {
$status = -1;
} elseif($user['password'] != $passwordmd5) {
$status = -2;
} elseif($checkques && $user['secques'] != ” && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
$status = -3;
} else {
$status = $user['uid'];
}
echo ’<br>$statusz:’.$status.’<br>’;
die();
}else{
if(emptyempty($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);
}



至此,我们可以更改uchome默认的认证方式了,如果这里更改了,以后相关的也需要作出更改,这个就留下大家自己去跟踪调试了.
tips:
uchome_ROOT/uc_client/model/user.php下还有一个check_login(),这个函数暂时没有找到调用的地方.



PHP代码



check_login($username, $password, &$user) {
$user = $this->get_user_by_username($username);
if(empty($user['username'])) {
return -1;
} elseif($user['password'] != md5(md5($password).$user['salt'])) {
return -2;
}
return $user['uid'];
}


eclipsePDT还是不错的,可以试试这个IDE.