在codeigniter中进行表单验证的问题

时间:2016-10-27 00:29:18

标签: php forms codeigniter validation login

我在验证表单方面存在问题,这是一个单身表格,我有登录和用户控制器,当我提交表格时,我需要登录页面。

我将默认控制器更改为" user"它验证了表单,但我想登录它不能正常工作。我想知道问题是什么!

这是来自用户控制器的验证表单代码:

public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form','url'));
        $this->load->library(array('session', 'form_validation', 'email'));
        $this->load->database();
        $this->load->model('user_model');
    }
    function index()
        {
            //set validation rules
            $this->form_validation->set_rules('name', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
            $this->form_validation->set_rules('prenom', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
            $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email|is_unique[teacher.email]');
            $this->form_validation->set_rules('password', 'Password', 'trim|required|matches[cpassword]|md5');
            $this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required|md5');

            //validate form input
            if ($this->form_validation->run() == FALSE)
            {
                // fails
                $this->load->view('backend/user_registration_view');
            }

这是观点:

<div class="panel-body">
                <?php $attributes = array("name" => "registrationform");
                echo form_open("user/register", $attributes);?>
                <div class="form-group">
                    <label for="name">First Name</label>
                    <input class="form-control" name="name" placeholder="Your First Name" type="text" value="<?php echo set_value('name'); ?>" />
                    <span class="text-danger"><?php echo form_error('fname'); ?></span>
                </div>

这是我测试我的应用程序的墨水,请帮助我解决这个问题:

http://prof.skolarie.com(登录是默认控制器)。

我认为默认设置登录时会覆盖用户控制器!

谢谢

更新:路线文件;

$route['default_controller'] = 'login';

$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

您可以在以下链接中找到代码来源:

http://prof.skolarie.com/uploads/myapp.zip

2 个答案:

答案 0 :(得分:0)

您的页面很难阅读,请尽量让事情变得简单,这样您就可以看到您犯了什么错误,我试着看看问题出在哪里,但我能找到的只是您的表格是指向注册表单之前的奇怪链接指向:

http://prof.skolarie.com/index.php/user/index

此链接确实错过了,表单应该指向一个控制器,它检查输入,使用模型将它们放入数据库,然后指向日志记录控制器

此外,它可能是路由问题,或者您已更改404错误视图,因为访问您网站上的任何随机页面,它会生成登录表单而不是显示404错误(例如:我访问过:{{ 1}}并且它一直向我显示登录表单),确保您的路由有效,并且它们指向正确的控制器。

如果您遇到此问题,请发布正确的代码示例以及路线。

答案 1 :(得分:0)

您正在user/register上发布表单,我认为您在index功能中的验证功能因此请在register函数上进行验证,而不是index