Визуализация на грешките в логин форма

teroristd

Registered
Здравейте, изграждам си логин форма с фреймуорка на gatakka. В модела си правя валидация а също и проверки дали съществува такъв имейл и парола в базата данни, и ако нещо не е наред изкарвам някаква грешка. В случая грешките ми излизат под самата форма, а аз искам да се визуализират в нея. Ето и кодовете.

default_layout
Код:
<!DOCTYPE HTML>

<html>

    <head>
        <title>Beta Site Login Page</title>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="http://localhost/SiteBeta/public/css/login.css">
    </head>
    
    <body>
        <?= $this->getLayoutData('body'); ?>
    </body>
    
</html>


LoginView
Код:
<div class="container">

    <form id="signup" method="post" >

        <div class="header">

            <h3>Sign Up</h3>

            <p>You want to fill out this form</p>

        </div>

        <div class="sep"></div>

        <div class="inputs">

            <input type="email" placeholder="e-mail" autofocus name="email" />

            <input type="password" placeholder="Password" name="pass" />

            <a id="submit" onclick="document.getElementById('signup').submit();">SIGN UP</a>

        </div>

    </form>

</div>


LoginController
Код:
namespace controllers;

class Login extends \application\BaseController {
    
    public function bar() {

        $view = $this->_view;    //Това е инстанцията на класа View 

        $view->appendToLayout('body', 'LoginView');    //Добавям лейаута

        $view->display('layouts/default_layout');   //Визуализирам

        $dataEmail = $this->_normalize->post('email');   //Взимам данните от пост, може и да нормализирам но в случая не го правя

        $dataPass = $this->_normalize->post('pass');   //Взимам от пост

        $model = new \models\LoginModel();   //Инстанция на модела

        $model->do_something($dataEmail, $dataPass);   //Функцията в която валидирам и изкарвам грешките
    }

}


LoginModel
Код:
namespace models;

class LoginModel extends \application\DatabaseStatements {

    public function __construct($dbConnection = 'default') {
        parent::__construct($dbConnection);
    }

    public function do_something($dataEmail, $dataPass) {

        $validate = new \application\Validation();
        $validate->setRule('email', $dataEmail);
        $validate->setRule('minlength', $dataPass, 5);
        $validate->validate();
        if ($validate->validate() == TRUE) {
            $sql = $this->prepare('SELECT email,pass FROM login')->execute()->fetchAllAssoc();
            foreach ($sql as $row) {
                if ($dataEmail != $row['email']) {
                    echo 'There is no such email!';
                    break;
                } elseif ($dataPass != $row['pass']) {
                    echo 'Your password is not correct!';
                    break;
                }
            }
        } else {
            foreach ($validate->getErrors() as $key => $value) {
                if ($value == 'email') {
                    echo 'Your email is not valid!';
                } elseif ($value == 'minlength') {
                    echo 'Your password is too short!';
                }
            }
        }
    }

}
 
Използвай първична JS проверка след което си прави проверките в кода при първичната ще си правиш някой от основните проверки. Във вторичната ще трещиш големите СЪРВЪРНИ грешки (PHP).
 

Back
Горе