Пример #1
0
function signin($nickname, $password, $encrypted, $staysignedin)
{
	global $user, $CONF;

	$u = new RegUser();
	if (strpos($nickname,'@')===false)
		$u->setNickname($nickname);
	else
		$u->setEmail($nickname);
	
	if ($u->mustValidateEmailFirst()){
		$u->sendEmail();
		return array('nickname'=>$u->getNickname(), 'ok'=>false, 'error'=>'must validate email first');
	}

	if ($encrypted)
		$valid = $u->validateEncPassword($password);
	else
		$valid = $u->validatePassword($password);

	if ($valid){
		$user = $u;
		$user->load();
		if ($user->getFirstTime())
		{
			$user->setFirstTime(false);
			$la=$user->save();
		}
		$_SESSION['user'] = $user;
		if ($staysignedin=='true')
		{
			setcookie('nickname', $user->getNickname(), $CONF['cookie_rememberme_lifetime']);
			setcookie('password', $user->getEncPassword(), $CONF['cookie_rememberme_lifetime']);
		}
		$result = array('user'=> array('nickname'=>$user->getNickname(),'anon'=>false),
		                          'ok'=>true, 'error'=>'');
	} else {
		$result = array('nickname'=>'', 'ok'=>false, 'error'=>'invalid password');
	}

	return $result;
}