Проверка сообщения об ошибке входа в систему в codeigniter - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь показать сообщение об ошибке, если пользователь не ввел имя пользователя и пароль и пытается нажать на кнопку входа. Я пытаюсь показать сообщения об ошибках, такие как имя пользователя не введено и пароль не введен Но он не работает идеально.

Вот мой контроллер:

public function login_user() {

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

    if ($this->form_validation->run() == FALSE) {

        $this->load->view('login_view');
    } else {
        $data = array(
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password'),
            'firstname' => $this->input->post('firstname'),
            'lastname' => $this->input->post('lastname')
        );
        $result = $this->login_database->login($data);
        if ($result == TRUE) {
                    // Add user data in session
            $this->session->set_userdata('username', $data['username']);
            $this->session->set_userdata('firstname', $data['firstname']);
            $this->session->set_userdata('lastname', $data['lastname']);

            //redirect to dashboard
            $this->load->view('include/sidenavbar');
            $this->load->view('include/topnavbar');
            $this->load->view('dashboard');
        } else {
            if($data['username']=='')
            {
               $this->session->set_flashdata('err_message', 'Username Not Entered !');
            }

            $this->session->set_flashdata('err_message', 'Login is invalid. Please try again !');
            $this->load->view('login_view', $data);
        }
    }
}

Вот моя модель:

public function login($data) {

    $condition = "username =" . "'" . $data['username'] . "' AND " . "password =" . "'" . $data['password'] . "'";
    $this->db->select('*');
    $this->db->from('users');
    $this->db->where($condition);
    $this->db->limit(1);
    $query = $this->db->get();

    if ($query->num_rows() == 1) {
        return true;
    } else {
        return false;
    }
}

Вид:

<?php 
if( $this->session->flashdata('err_message') )
{
    echo $this->session->flashdata('err_message');
}
?>

Кто-нибудь может мне помочь, как решить это?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Я попробовал вот так, тогда он отлично работал.

Просмотр:

  <?php echo form_error('username','<span class="error">','</span>'); ?>
                    <input type="text" name="username" placeholder="Username" />
                     <?php echo form_error('password','<span class="error">','</span>'); ?>
                    <input type="password" name="password" placeholder="Password" />

Я использовал form_error, чтобы отобразить ошибки для каждого поля.

, тогда он работает отлично.

0 голосов
/ 15 мая 2018

Пожалуйста, попробуйте сообщение, передав в массив, как показано ниже.

$this->load->library('session');

$this->session->set_flashdata('err_message', array('message' => 'Username Not Entered','class' => 'alert alert-warning'));

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...