2015-12-15 34 views
1

我正在關注如何使用Codeigniter創建登錄系統的教程。Codeigniter表單驗證打開空白頁面

我已經創建了下面的形式在我看來:

<!DOCTYPE html> 
<html lang="en"> 

<body> 

<div class="container"> 

    <h1>Login</h1> 

<?php 

    echo form_open('welcome/login_validation'); 

    echo validation_errors(); 


    echo form_label('Email: '); 
    echo form_input('email'); //form_input(name,value) 

    echo '<br />'; 

    echo form_label('Password: '); 
    echo form_password('password'); 

    echo '<br />'; 

    echo form_submit('login_submit', 'Login'); //form_submit(name,value) 


    echo form_close(); 


?> 
</div> 


</body> 

</html> 

但是當我點擊提交按鈕,谷歌瀏覽器,它會打開一個空白頁「有關:空白」在地址欄中。

在FireFox中它具有正確的地址「......歡迎/ form_validation」,但以下消息出現:

「這個地址將被限制 此地址使用它通常用於其它目的的網絡端口而不是網頁瀏覽,Firefox取消了您的保護請求。「

在Microsoft的邊緣,它只是停留在與表單的頁面。

這裏是我的控制器:

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

class Welcome extends CI_Controller { 

/** 
* Index Page for this controller. 
* 
* Maps to the following URL 
*  http://example.com/index.php/welcome 
* - or - 
*  http://example.com/index.php/welcome/index 
* - or - 
* Since this controller is set as the default controller in 
* config/routes.php, it's displayed at http://example.com/ 
* 
* So any other public methods not prefixed with an underscore will 
* map to /index.php/welcome/<method_name> 
* @see http://codeigniter.com/user_guide/general/urls.html 
*/ 
public function index() 
{ 
    $this->login(); 
} 

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

public function login_validation() 
{ 

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

    $this->form_validation->set_rules('email', 'Email', 'required'); 
    $this->form_validation->set_rules('password', 'Password', 'required|md5'); 


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

     redirect('main/members'); 


    } else{ 

     $this->load->view('login'); 


    } 

} 


public function members() 
{ 

    $this->load->view('users'); 



} 

} 

任何幫助表示讚賞。如果您需要更多信息,請告訴我,我會發布它。

感謝

編輯:我用笨3.0.3

+1

變化'回聲form_open('歡迎/ ''''echo'form_open('welcome/login_validation');'你的控制器中不存在這樣的'form_validation'方法。 – Saty

+0

@Saty我改變了這一點,但我仍然遇到同樣的問題。 – Ddrossi93

+0

@ Ddrossi93你的form_open可以添加一個index.php,如果你沒有通過htaac​​ess關閉它,請嘗試使用這個form_open(base_url()。'welcome/login_validation'); –

回答

1

形式開放是指在Welcome控制器將處理登錄表單的方法。

在你看來這是echo form_open('welcome/form_validation');

在你的控制器是public function login_validation()

要麼更改視圖form_open動作或Controller's方法名

+0

我仍然得到同樣的問題,我已經改變了看法說「歡迎/ login_validation」 – Ddrossi93

+0

顯示更新的代碼 –

+0

剛剛編輯它。現在是最新的 – Ddrossi93