2014-10-11 6 views
0

여기 컨트롤러입니다. 로그인 버튼을 클릭해도 아무런 변화가 없습니다. 내가 원하는 것은 사용자 데이터의 유효성을 검사 할 때 성공 화면을로드하고 사용자 데이터의 유효성을 검사하지 않을 때 오류 메시지를 표시하는 것입니다.Codeigniter에 로그인 할 수 없습니다.

내가 로그인

<?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'); 
      } 
     } 
} 

로 내 base_controller를 설정 여기에 내가 로그인 버튼을 클릭하면

<?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 속성을 부여해야합니다 (예 : action = "http://yoursitename.com/controllername" ) 컨트롤러 이름이 로그인되어 있습니다.

더 도움이 필요한 경우, 당신은 참조 할 수 있습니다 : [https://ellislab.com/codeigniter/user-guide/helpers/form_helper.html][1]

희망이 도움이!

+0

,, thanx는 지금 일하고있어 ... – waqas

+0

당신은 환영합니다! @waqas –

0

this linkform_open()이 작동하는 방식을 보여줍니다. codeigniter의 유틸리티 기능 중 하나는 도우미 libary에서 작동합니다. 당신은 로그인 URL되고 싶어

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

또는 무언가 :

는 귀하의 경우에는이 코드의 라인을 원하는 것이다.

이 줄은 HTML에

<form method="post"> 

을 대체 할 것이다 당신이 URI 라우팅에 익숙하지 않은 경우

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

같은 것이 렌더링 할 때, 당신은 여기에 대한 읽어야] (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 코드 아래에 시도 할 수 있습니다 HP 컨트롤러 파일

<?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'); 
      } 
     } 
} 
여기

내가 클래스 이름과 유사하지 않아야 함수 이름으로 확인하기 로그인에서보기 파일에

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

또한 내가 변경 한 함수 이름을 액션 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> 

희망이 당신이

관련 문제