protected function _in_home() { global $bio, $core, $warning; if (!_button()) { return; } $v = $this->__(w('page address key')); if ($bio->v('auth_member')) { redirect($v->page); } if (empty($v->address)) { $warning->set('LOGIN_ERROR'); } if (_button('recovery')) { $sql = 'SELECT bio_id, bio_name, bio_address, bio_recovery FROM _bio WHERE bio_address = ? AND bio_id <> ? AND bio_id NOT IN ( SELECT ban_userid FROM _banlist )'; if ($recovery = sql_fieldrow(sql_filter($sql, $v->address, 1))) { $email = array('USERNAME' => $recovery->bio_name, 'U_RECOVERY' => _link('my', array('recovery', 'k' => _rainbow_create($recovery->bio_id))), 'U_PROFILE' => _link('-', $recovery->bio_nickname)); $core->email->init('info', 'bio_recovery', $email); $core->email->send($recovery->bio_address); $sql = 'UPDATE _bio SET bio_recovery = bio_recovery + 1 WHERE bio_id = ?'; sql_query(sql_filter($sql, $recovery->bio_id)); } $this->_stop('RECOVERY_LEGEND'); } if (empty($v->key)) { $warning->set('login_fail'); } $v->register = false; $v->field = email_format($v->address) ? 'address' : 'name'; $sql = 'SELECT address_bio FROM _bio_address WHERE address_name = ?'; if ($bio_address = sql_field(sql_filter($sql, $v->address), 'address_bio', 0)) { $sql = 'SELECT bio_id, bio_key, bio_fails FROM _bio WHERE bio_id = ? AND bio_active = ?'; if ($_bio = sql_fieldrow(sql_filter($sql, $bio_address, 1))) { if (ValidatePassword($v->key, $_bio->bio_key)) { if ($_bio->bio_fails) { $sql = 'UPDATE _bio SET bio_fails = 0 WHERE bio_id = ?'; sql_query(sql_filter($sql, $_bio->bio_id)); } $bio->session_create($_bio->bio_id); redirect($v->page); } if ($_bio->bio_fails == $core->v('account_failcount')) { // TODO: Captcha system if failcount reached // TODO: Notification about blocked account _fatal(508); } $sql = 'UPDATE _bio SET bio_fails = bio_fails + 1 WHERE bio_id = ?'; sql_query(sql_filter($sql, $_bio->bio_id)); sleep(5); for ($i = 1; $i < 32; $i++) { if ($i == 1) { _style('birth_day'); } _style('birth_day.row', array('DAY' => $i)); } for ($i = 1; $i < 13; $i++) { if ($i == 1) { _style('birth_month'); } _style('birth_month.row', array('MONTH' => $i)); } for ($i = date('Y'); $i > 1900; $i--) { if ($i == date('Y')) { _style('birth_year'); } _style('birth_year.row', array('YEAR' => $i)); } _style('error', array('MESSAGE' => 'Los datos ingresados son inválidos, por favor intenta nuevamente.')); return; } } else { $v->register = true; } if ($v->register) { $this->_up_home(); } return; }
protected function _in_home() { global $bio, $core; $v = $this->__(w('page address key')); if ($bio->v('auth_member')) { redirect($v->page); } if (empty($v->address)) { $this->warning->set('LOGIN_ERROR'); } if (_button('recovery')) { $sql = 'SELECT bio_id, bio_name, bio_address, bio_recovery FROM _bio WHERE bio_address = ? AND bio_id <> ? AND bio_id NOT IN ( SELECT ban_userid FROM _banlist )'; if ($recovery = sql_fieldrow(sql_filter($sql, $v->address, 1))) { $email = array('USERNAME' => $recovery->bio_name, 'U_RECOVERY' => _link('my', array('recovery', 'k' => _rainbow_create($recovery->bio_id))), 'U_PROFILE' => _link('-', $recovery->bio_nickname)); $core->email->init('info', 'bio_recovery', $email); $core->email->send($recovery->bio_address); $sql = 'UPDATE _bio SET bio_recovery = bio_recovery + 1 WHERE bio_id = ?'; _sql(sql_filter($sql, $recovery->bio_id)); } $this->_stop('RECOVERY_LEGEND'); } if (empty($v->key)) { $this->warning->set('login_fail'); } $v->register = false; $v->field = is_email($v->address) ? 'address' : 'name'; $sql = 'SELECT bio_id, bio_key, bio_fails FROM _bio WHERE bio_?? = ? AND bio_blocked = ?'; if ($_bio = _fieldrow(sql_filter($sql, $v->field, $v->address, 0))) { if ($_bio->bio_key === _password($v->key)) { if ($_bio->bio_fails) { $sql = 'UPDATE _bio SET bio_fails = 0 WHERE bio_id = ?'; _sql(sql_filter($sql, $_bio->bio_id)); } $bio->session_create($_bio->bio_id); redirect($v->page); } if ($_bio->bio_fails == $core->v('account_failcount')) { // TODO: Captcha system if failcount reached // TODO: Notification about blocked account _fatal(508); } $sql = 'UPDATE _bio SET bio_fails = bio_fails + 1 WHERE bio_id = ?'; _sql(sql_filter($sql, $_bio->bio_id)); sleep(5); $this->warning->set('login_fail'); } else { $v->register = true; } if ($v->register) { $this->_up_home(); } return; }