Я не могу войти с правильным паролем, где и что мне здесь не хватает? - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь войти с правильным паролем, хранящимся в базе данных, но ниже выдает ошибку, может кто-нибудь помочь мне исправить это, пожалуйста?Я новичок в MVC и Laravel.

Даже если я изменю имя пользователя на «a», а пароль на «b», это приведет к ошибке (неверное имя пользователя и пароль) вместо того, чтобы перевести меня на панель управления.

login.php:

<div style="width: 400px; margin: 15% auto;">
    <h1 class="text-center text-success">Admin Login</h1>
    <div class="panel panel-default">
        <div class="panel-body">
            <form method="post">
                <div class="form-group">
                    <input type="text" class="form-control" name="username" placeholder="Username">
                </div>
                <div class="form-group">
                    <input type="password" class="form-control" name="pass" placeholder="Password" id="pass">
                </div>
                <?php
                if(isset($data['error']) && !empty($data['error'])) {                   
                    ?>
                    <p class="danger"><?=$data['error']?></p>
                    <?php
                }
                ?>
                <div class="form-group">
                    <button class="btn btn-primary btn-block" type="submit">Login</button>
                </div>
            </form>
        </div>
    </div>
</div>

Модель:

class UserCheckModel extends Model{

    //table

    private static $table = "users";

    //columns

    private static $id = "id";

    private static $first_name = "first_name";

    private static $last_name = "last_name";

    private static $user_name = "user_name";

    private static $email = "email";

    private static $password = "password";

    private static $super_user = "super_user";

    private static $created_date = "created_date";



    public function __construct()

    {

        parent::__construct();

    }



    public function checkUser($params){

        try{

            $sql = "select * from ".static::$table." where ".static::$user_name." = ? and ".static::$password." = ? ";

            $params = [$params[static::$user_name],$params[static::$password]];

            $result = $this->fetchRecord($sql,$params);

            if ($result){

              $data = ['status'=>true,'result'=>$result];

            }else{

               // throw new Exception("Invalid Username Or Password");
                throw new Exception("data");
            }

        }catch (PDOException $e){

            $this->setError($e->getMessage());

            $data = ['status'=>true];

        }catch (Exception $e){

            $this->setError($e->getMessage());

            $data = ['status'=>true];

        }finally{

            return $data;

        }

    }



}

1 Ответ

0 голосов
/ 23 апреля 2019

Вы забыли чек CSRF Документация . Отредактируйте форму следующим образом

<form method="post">
  {{ csrf_field() }} or @csrf
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...