Codeigniter表单验证打开空白页

时间:2015-12-15 06:15:39

标签: php forms codeigniter model-view-controller

我正在学习如何使用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>

但是当我点击谷歌浏览器上的提交按钮时,它会在地址栏中打开一个空白页,其中包含“about:blank”。

在FireFox中,它具有正确的地址“... welcome / form_validation”,但会提供以下消息:

“此地址受到限制 此地址使用网络端口,该端口通常用于Web浏览以外的目的。 Firefox取消了保护请求。“

在Microsoft Edge上,它只是停留在包含表单的页面上。

这是我的控制器:

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



}

}

感谢任何帮助。如果您需要更多信息,请告诉我,我会发布。

由于

编辑:我正在使用codeigniter 3.0.3

1 个答案:

答案 0 :(得分:1)

表单打开是指Welcome控制器中将处理登录表单的方法。

在您看来,它是echo form_open('welcome/form_validation');

但是

在您的控制器中,它是public function login_validation()

更改视图form_open操作或Controller's方法名称