2012-12-17 41 views
0

我正在做一個簡單的表單登錄。在很多FAIL嘗試之後,我下載了一個示例以瞭解它是如何工作的。 問題是:在我以我的登錄表單提交數據並調用控制器後,我無法獲取控制器中提交的數據。CodeIgniter 2.1.3 - 表單助手 - 無法獲取DATA提交

我嘗試了一些如打印用戶名這麼簡單,我什麼都沒有。

我在做什麼錯了?我應該配置一些東西嗎?

另一個問題是:當我用普通的HTML表單編寫表單時,表單工作的很好。

我使用,我發現這裏http://www.codefactorycr.com/login-with-codeigniter-php.html

我已經使用其他代碼的代碼,以及我自己的代碼,但ATM我是爲了亂投醫明白髮生了什麼。

login_view.php

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
<title>Simple Login with CodeIgniter</title> 
    </head> 
    <body> 
    <h1>Simple Login with CodeIgniter</h1> 
    <?php echo validation_errors(); ?> 
    <?php echo form_open('verifylogin'); ?> 
     <label for="username">Username:</label> 
     <input type="text" size="20" id="username" name="username"/> 
     <br/> 
     <label for="password">Password:</label> 
     <input type="password" size="20" id="passowrd" name="password"/> 
     <br/> 
     <input type="submit" value="Login"/> 
    </form> 
    </body> 
</html> 

verifylogin.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class VerifyLogin extends CI_Controller { 

    function __construct() 
    { 
    parent::__construct(); 
    $this->load->model('user','',TRUE); 
    } 

    function index() 
    { 

    $username = $this->input->post('username'); 

    echo "Username: " . $username; 
    //This method will have the credentials validation 
    $this->load->library('Form_validation'); 

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

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

    //Field validation failed. User redirected to login page 
     $this->load->view('login_view'); 
    } 
    else 
    { 
     //Go to private area 
     redirect('home', 'refresh'); 
    } 

    } 

    function check_database($password) 
    { 
    //Field validation succeeded. Validate against database 
    $username = $this->input->post('username'); 

    //query the database 
    $result = $this->user->login($username, $password); 

    if($result) 
    { 
     $sess_array = array(); 
     foreach($result as $row) 
     { 
     $sess_array = array(
      'id' => $row->id, 
      'username' => $row->username 
     ); 
     $this->session->set_userdata('logged_in', $sess_array); 
     } 
     return TRUE; 
    } 
    else 
    { 
     $this->form_validation->set_message('check_database', 'Invalid username or password'); 
     return false; 
    } 
    } 
} 
?> 

我甚至不能寫這個用戶名

$username = $this->input->post('username'); 

echo "Username: " . $username; 
+0

顯示您的代碼? –

+0

像我說的代碼是相同的這http://www.codefactorycr.com/login-with-codeigniter-php.html但我補充了我認爲是最重要的 – user1910232

回答

0

我也使用表單輔助其工作的罰款

<?php echo validation_errors(); ?> 
<?php echo form_open('admin/varifylogin'); ?> 
<table> 
    <tr> 
     <td>UserName</td> 
     <td><?php echo form_input('username',$this->input->post('usernamee'));?></td> 
    </tr> 
    <tr> 
     <td>Password</td> 
     <td><?php echo form_password('password');?></td> 
    </tr> 
    <tr> 
     <td colspan="2"><?php echo form_submit('login','Sign In');?></td> 
    </tr> 
</table> 
<?php echo form_close(); ?> 
+0

請不要發佈問題作爲答案。哪一個是正確答案? – Sparky

+0

你能夠理解或對我的問題有一個想法? – user1910232

+0

你可以分享你的腳本,這樣我就可以使它正確。 – w3b