Как отобразить сообщение об отказе от подсластителя? - PullRequest
0 голосов
/ 09 июня 2019

Я работаю с веб-сайтом, используя CodeIgniter Framework. Я попытался войти, используя неверное имя пользователя и пароль. К сожалению, «В аккаунте отказано. Пожалуйста, попробуйте еще раз». сообщение не отображается. Но сообщение об успехе отображается, когда я ввел правильное имя пользователя и пароль. Я использую сообщение подсластителя для этого.

Контроллер:

    public function login() {
        $username = $this->input->post('username', TRUE);
        $password = $this->input->post('password', TRUE);

        $this->form_validation->set_rules('username', 'Username', 'required|xss_clean|trim');
        $this->form_validation->set_rules('password', 'Password', 'required|xss_clean|trim');

        $validator = array('success' => FALSE, 'messages' => array());

        if ($this->form_validation->run() == TRUE) {
            $data = array('username' => $username, 'password' => sha1($password));
            $user = $this->admin->fetch('admin', $data)[0];

            if (!$user) {
                $this->session->set_flashdata('admin_reg_errors', 'Your admin account is invalid.');
                redirect('/admin/login', 'refresh');
            } else {
                $userdata = array('a_logged_in' => TRUE, 'adminid' => $user->id);

                if ($this->insert_logs($user->id, '1', 'Admin Sign In', 0)) {
                    $this->session->set_userdata($userdata);
                    redirect('admin', 'refresh');
                }
            }
        } else {
            $this->session->set_flashdata('admin_reg_errors', validation_errors());
            redirect('/admin/login', 'refresh');
        }
    }

    public function do_login() {
        $username = $this->input->post('username', TRUE);
        $password = $this->input->post('password', TRUE);

        $this->form_validation->set_rules('username', 'Username', 'required|xss_clean|trim');
        $this->form_validation->set_rules('password', 'Password', 'required|xss_clean|trim');

        $validator = array('success' => FALSE, 'messages' => array());

        if ($this->form_validation->run() == TRUE) {
            $data = array('username' => $username, 'password' => sha1($password));
            $user = $this->admin->fetch('admin', $data)[0];
            $userdata = array('a_logged_in' => TRUE, 'adminid' => $user->id);

            if (!$user) {
                $validator['message'] = "Your account is invalid.";
                $validator['success'] = FALSE;
                $validator['errormsg'] = TRUE;
            } else {
                if ($this->insert_logs($user->id, '1', 'Admin Sign In', 0)) {
                    $this->session->set_userdata($userdata);
                    $validator['message'] = "You have successfully logged in.";
                    $validator['success'] = TRUE;
                    $validator['errormsg'] = FALSE;
                } else {
                    $validator['message'] ="Account has been denied. Please try again.";
                    $validator['success'] = FALSE;
                    $validator['errormsg'] = TRUE;
                }
            }
            echo json_encode($validator);
        } else {
            foreach ($_POST as $key => $value) {
                $validator['messages'][$key] = form_error($key);
                $validator['success'] = FALSE;
                $validator['errormsg'] = FALSE;
            }
            echo json_encode($validator);
        }
    }

Ajax:

  $(document).ready(function() {
    function do_login() {
      $('#admin-login-form').submit(function(e) {
        e.preventDefault();
        var username = $("#login_username").val();
        var password = $("#login_password").val();

        var formData = $(this).serialize();

        $("#login_username-error").html("");
        $("#login_password-error").html("");  
        console.log();
        $.ajax({
          type: "POST",
          url: app_url + "adminlogin/do_login",
          data : formData,
          dataType: "json",
          success:function(res) {
            console.log(res);
            if (res.success) {
              console.log(res.message);
              validator("#login_username-error", "");
              validator("#login_password-error", "");
              swal({
                title: "Login Success",
                text: res.message,
                icon: "success",
                button: null 
              });
              setTimeout(function() {
                location.href = app_url + "admin";
              }, 2000);
            } else {
              if (res.errormsg) {
                console.log(res.message);
                consol
                swal({
                  title: "Login Failed",
                  text: res.message,
                  icon: "warning",
                  button: null
                });
                setTimeout(function() {
                  location.href = app_url + "adminlogin"; 
                }, 2000);
              }

              if (res.messages.username != "") {
                validator("#login_username-error", res.messages.username);
              } else {
                validator("#login_username-error", "");
              }

              if (res.messages.password != "") {
                validator("#login_password-error", res.messages.password);
              } else {
                validator("#login_password-error", "");
              }

              console.log(res.messages);
            }
          }
        });
      });
    }

    function validator(id, message) {
      if (message != "") {
        console.log("wha");
        $(id).parent("div").addClass("form-animate-error");
        $(id).append(message);
      } else {
        $(id).parent("div").removeClass("form-animate-error");
        $(id).html("");
      }
    }
    do_login();
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...