2014-10-11 4 views
0

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

Я поставил мой base_controller, как Логин

<?php 

    class Login extends CI_Controller { 
     /** 
     * 
     * load the magazines 
     */ 

     function __construct(){ 
      parent::__construct(); 
      $this->load->library('form_validation'); 
      $this->load->model('User','National_Holiday','Updated_Holiday'); 
     } 
     public function index() { 
      $this->load->view('login'); 
     } 

     /** 
     * 
     * add a magazine 
     */ 

     public function login(){ 

      $this->form_validation->set_rules(array (
       array(
        'field' => 'username', 
        'label' => 'username', 
        'rules' => 'required', 
       ) , 
       array(
        'field' => 'password', 
        'label' => 'password', 
        'rules' => 'required|is_numeric', 
       ), 

      )); 

      $this -> form_validation ->set_error_delimiters('<div class="alert alert-error">','</div>'); 
      if(!$this->form_validation->run()){ 

       $this->load->view('login'); 
      } 
      else { 

       $this->load->view('national_holiday_screen'); 
      } 
     } 
} 

здесь является мнение

<?php echo validation_errors(); ?> 
<form method="post"> 
    <!-- LOGIN DIV STARTS HERE --> 
<div> 
    <div> <h2> Log In </h2></div> 
    <div> 
     <lablel for="username"> Username </label> 
     <input type="text" name="username" value=""/> 
    </div> 
    <div> 
     <label for="password"> Password </label> 
     <input type="password" name="password" value=""/> 
    </div> 
    <div> 
     <br> 
     <input type="submit" value="Login"> 
    </div> 
</div> 
    <!-- LOGIN DIV ENDS HERE --> 
</form> 

При нажатии на кнопку входа в систему, ничего не происходит. Что я делаю не так?

+0

где вы указать URL формы представления? – Wold

+0

Я новичок в codeigniter, я понятия не имею. Я просто следую учебникам – waqas

+0

@Wold, пожалуйста, предложите мне что-то, что мне нужно изменить – waqas

ответ

0

Вы должны указать атрибут действия в теге формы, например: action = "http://yoursitename.com/controllername" в вашем случае controllername - это логин.

Для получения дополнительной помощи, вы можете обратиться: [https://ellislab.com/codeigniter/user-guide/helpers/form_helper.html][1]

Надеется, что это поможет!

+0

,, thanx bro его сейчас работает ... – waqas

+0

Добро пожаловать! @waqas –

0

this link показывает, как работает form_open(), одна из функций полезности codeigniter из формы helper libary.

В вашем случае, если вы хотели бы эту строку кода:

<?php echo form_open('/login'); ?> 

или что-то, что вы хотите быть Войти URL.

Эта линия заменит

<form method="post"> 

в вашем HTML и при визуализации будет что-то вроде

<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/login" /> 

Если вы не знакомы с маршрутизацией URI, то вы должны прочитать об этом здесь] (https://ellislab.com/codeigniter/user-guide/general/routing.html). Я бы recommedn настройка маршрута для вас входа в систему, но формат по умолчанию для URL является

example.com/class/function/id/ 

так у вас может выглядеть

example.com/login/login 

И form_open() будет выглядеть (даже если его вид cluncky)

<?php echo form_open('/login/login'); ?> 
0

Вы можете попробовать ниже код

login.p Файл контроллер л.с

<?php 

    class Login extends CI_Controller { 
     /** 
     * 
     * load the magazines 
     */ 

     function __construct(){ 
     parent::__construct(); 
     $this->load->library('form_validation'); 
     $this->load->helper('url'); 
     $this->load->model('User','National_Holiday','Updated_Holiday'); 
     } 
     public function index() { 
      $this->load->view('login'); 
    } 

     /** 
     * 
     * add a magazine 
     */ 

     public function validate(){ 
     $this->form_validation->set_rules(array (
       array(
        'field' => 'username', 
        'label' => 'username', 
        'rules' => 'required', 
       ) , 
       array(
        'field' => 'password', 
        'label' => 'password', 
        'rules' => 'required|is_numeric', 
       ), 

      )); 
     $this -> form_validation ->set_error_delimiters('<div class="alert alert-error">','</div>'); 
      if(!$this->form_validation->run()){ 

       $this->load->view('login'); 
      } 
      else { 

       $this->load->view('national_holiday_screen'); 
      } 
     } 
} 

Здесь я загрузил один помощник, чтобы дать URL действия в файл представления

$this->load->helper('url'); 

Также я изменил имя функции от входа, чтобы проверить, как имя функции не должно быть похоже на имя класса как конструктор уже определен там

логин.вид PHP файл

<?php echo validation_errors(); ?> 
<form method="post" action = "<?php echo site_url("login/validate"); ?>"> 
    <!-- LOGIN DIV STARTS HERE --> 
<div> 
    <div> <h2> Log In </h2></div> 
    <div> 
     <lablel for="username"> Username </label> 
     <input type="text" name="username" value=""/> 
    </div> 
    <div> 
     <label for="password"> Password </label> 
     <input type="password" name="password" value=""/> 
    </div> 
    <div> 
     <br> 
     <input type="submit" value="Login"> 
    </div> 
</div> 
    <!-- LOGIN DIV ENDS HERE --> 
</form> 

Надеется, что это поможет вам

Смежные вопросы