PHP代码
- //note
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代码
- function
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.