Ejemplo n.º 1
0
 public function passwordResetAction()
 {
     if (isset(Request::getUri()[0])) {
         $model = new PageModel();
         if ($model->recoveryHashExist(Request::getUri()[0])) {
             $this->view->success = false;
             if (isPost()) {
                 $post = allPost();
                 if (isset($post['email']) && isset($post['password']) && isset($post['password2'])) {
                     if ($post['password'] == $post['password2']) {
                         if (checkLenght($post['password'], 6, 20)) {
                             if ($model->recoveryHashExist(Request::getUri()[0], $post['email'])) {
                                 if ($model->resetPassword($post['email'], $post['password'])) {
                                     $this->view->msg = "You have successfully changed password.";
                                     $this->view->success = true;
                                     $message = "Dear,<br/>Your account password at <a href=\"" . SITE_URL . "\">" . SITE_NAME . "</a> was changed.<br/>" . "New password is " . $post['password'] . "<br/>" . "Please do not share him!" . "<br/><br/>" . "Thanks for using our service,<br/>" . "Best regards,<br/>Administration.";
                                     $headers = "MIME-Version: 1.0\r\n" . "Content-type: text/html; charset=utf-8\r\n";
                                     if (mail($post['email'], "Password Reset", $message, $headers)) {
                                         $this->view->msg .= " Notification about password reset was sent to your email.";
                                     }
                                 } else {
                                     $this->view->msg = "Something wrong. Please try again later.";
                                 }
                             } else {
                                 $this->view->msg = "Wrong email. Please check entered data";
                             }
                         } else {
                             $this->view->msg = "Allowed password length may be from 6 to 20 characters.";
                         }
                     } else {
                         $this->view->msg = "Passwords aren't similar! Try again";
                     }
                 } else {
                     $this->view->msg = "You must fill all fields! Try again";
                 }
             }
             $model->deleteOldRecovery();
             $this->view->langPars = true;
             $this->view->hash = Request::getUri()[0];
             $this->view->title = Lang::translate("PASSWORD_RESET_TITLE");
         } else {
             setMyCookie('error', "Wrong password recovery code.", time() + 5);
             redirect(url('page', 'recovery'));
         }
     } else {
         redirect(url());
     }
 }
function validateInputtedValue($db, $fieldValue, $fieldCateg)
{
    $err = array();
    if ($fieldCateg == 'authorName') {
        //check for lenght
        if (!checkLenght($fieldValue, 3, 250)) {
            $err[] = "Дължината на автора трябва да е между 3 и 250 символа.";
        }
        // check for exists
        $authorName[] = $fieldValue;
        if (isNameExistsInTable($db, $authorName, 'authors', 'author_name')) {
            $err[] = "Автор с това име вече съществува, моля пробвайте с друго име.";
        }
    }
    if ($fieldCateg == 'bookName') {
        //check for lenght
        if (!checkLenght($fieldValue, 3, 250)) {
            $err[] = "Заглавието на книгата може да бъде между 3 и 250 символа.";
        }
        // check for exists
        $booksName[] = $fieldValue;
        if (isNameExistsInTable($db, $booksName, 'books', 'book_title')) {
            $err[] = "Книгата вече съществува, моля пробвайте с друго заглавие.";
        }
    }
    if ($fieldCateg == 'userName') {
        //check for lenght
        if (!checkLenght($fieldValue, 3, 15)) {
            $err[] = "Дължината на потребителското име трябва да е между 3 и 15 символа.";
        }
    }
    if ($fieldCateg == 'bookNotes') {
        //check for lenght
        if (!checkLenght($fieldValue, 0, 1000)) {
            $err[] = "Дължината на забележката трябва да е между 0 и 1000 символа.";
        }
    }
    if ($fieldCateg == 'newUserName') {
        // check for exists
        $userName[] = $fieldValue;
        if (isNameExistsInTable($db, $userName, 'users', 'user_name')) {
            $err[] = "Потребителското име вече съществува, моля пробвайте с друго име.";
        }
    }
    if ($fieldCateg == 'userPass') {
        //check for lenght
        if (!checkLenght($fieldValue, 3, 15)) {
            $err[] = "Дължината на потребителската парола трябва да е между 3 и 15 символа.";
        }
    }
    if ($fieldCateg == 'msgTitle') {
        //check for lenght
        if (!checkLenght($fieldValue, 1, 50)) {
            $err[] = "Заглавието на съобщението трябва да съдържа от 1 до 50 символа.";
        }
    }
    if ($fieldCateg == 'msgText') {
        //check for lenght
        if (!checkLenght($fieldValue, 1, 250)) {
            $err[] = "Съдържанието на съобщението трябва да съдържа от 1 до 250 символа.";
        }
    }
    return $err;
}