['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => '/^[a-zA-Z0-9]{40}$/']] ); private bool $success = false; protected function generate() : void { parent::generate(); if (User::isBanned()) return; $msg = $this->confirm(); $this->inputbox = ['inputbox-status', array( 'head' => Lang::account('inputbox', 'head', $this->success ? 'success' : 'error'), 'message' => $this->success ? $msg : '', 'error' => $this->success ? '' : $msg, )]; } private function confirm() : string { if (!$this->assertGET('key')) return Lang::main('intError'); $acc = DB::Aowow()->selectRow('SELECT `updateValue`, `status`, `statusTimer` FROM ::account WHERE `token` = %s', $this->_get['key']); if (!$acc || $acc['status'] != ACC_STATUS_CHANGE_PASS || $acc['statusTimer'] < time()) return Lang::account('inputbox', 'error', 'passTokenUsed'); // 0 changes == error if (!DB::Aowow()->qry('UPDATE ::account SET `passHash` = `updateValue`, `status` = %i, `statusTimer` = 0, `token` = "", `updateValue` = "" WHERE `token` = %s', ACC_STATUS_NONE, $this->_get['key'])) return Lang::main('intError'); $this->success = true; return Lang::account('inputbox', 'message', 'passChangeOk'); } } ?>