2013-02-01 75 views
0

我有一個codeigniter控制器,具有以下check()函數來檢查用戶名和密碼。Codeigniter鏈接,修改它們

http://localhost/prakash/modules/index.php/login/login/login/login/login/login/check 

每當我提交表單(從視圖),上面的鏈接生成。我如何克服它。我可以在控制器中使用redirect('login')而不是$this->load->view('login/login_form');,但這樣它就不會在窗體中顯示驗證錯誤。

我的控制器是

function check(){ 

     $this->form_validation->set_rules('username', 'Username', 'required'); 
     if($this->form_validation->run()==FALSE){ 
      $this->load->view('login/login_form'); 
     }else{ 
      $this->load->model('loginModel'); 
      $query = $this->loginModel->validate(); 
      if($query){ 
       $data = array('username' => $this->input->post('username'), 
           'is_logged_in' => true 
          ); 
       $this->session->set_userdata($data); 
       //redirecting to appropriate page 
       redirect('success'); 
      }else{ 
       $this->session->set_flashdata('loginCheck','Username/Password Comination Incorrect!'); 
       redirect('login'); 
      } 
     } 

    } 

我的觀點是

<section class="main"> 
<form class="form-1" action="login/check" method="post"> 
    <?php echo "<p class=\"text-error\">{$this->session->flashdata('loginCheck')}</p>"; ?> 
    <?php echo validation_errors(); ?> 
    <p class="field"> 
     <input type="text" name="username" placeholder="Username or email"> 
     <i class="icon-user icon-large"></i> 
    </p> 
     <p class="field"> 
      <input type="password" name="password" placeholder="Password"> 
      <i class="icon-lock icon-large"></i> 
    </p> 
    <p class="submit"> 
     <button type="submit" name="submit"><i class="icon-arrow-right icon-large"></i></button> 
    </p> 
</form> 
</section> 
+0

雅,一個登錄盈是另一個加.. ???? – prakashchhetri

回答

0

問題是與form標籤

變化

的action屬性

<form class="form-1" action="/login/check" method="post"> 

或者更好(如果你使用的是網址助手)

<form class="form-1" action="<?php echo base_url() ?>login/check" method="post"> 

爲什麼會發生?

您正在使用的值是相對於當前網址的path

HTML form action Attribute

實施例1

實施例2

實施例3

我每次提交表單時
+0

Ya謝謝..我使用了基本的URL base_url(),但由於我的鏈接是與index.php/login/check,它沒有工作,因此我用'site_url()'來代替,它工作正常。然而,有沒有一種好的方法來擺脫index.php的東西,而不會碰到令人討厭的錯誤? – prakashchhetri

+0

使用.htaccess重定向您的請求,以通過index.php如果你是在Apache。 – itachi

+0

看到這篇文章http://stackoverflow.com/questions/6809373/remove-index-php-from-url-codeigniter/12926692#12926692 – user20232359723568423357842364