public function login() { $token = $this->helper->createToken(); $loginStudentForm = new LoginStudentForm(); $errors = new ErrorList(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $loginStudentForm->fillDataFromArray($_POST); $errors = $this->validations->validLoginStudentForm($loginStudentForm); if (!$errors->hasErrors()) { if ($this->helper->validToken($token)) { $student = $this->studentGateway->getStudentByСolumn('email', $loginStudentForm->getEmail()); if ($student and $this->loginHelper->isPasswordValid($student, $loginStudentForm->getPassword())) { $this->loginHelper->createCookies($student); $this->redirect($this->getQuery('go')); exit; } else { $errors->setError('login', "Incorrect username or password"); } } else { throw new \Exception("Invalid token"); } } } $this->render('templates/login.phtml', compact('loginStudentForm', 'errors', 'token')); }