首页 > 解决方案 > Codeigniter 不验证登录表单

问题描述

我对 codeigniter 已经很熟悉了,所以我对我的代码很有信心。但是,我的表单验证不起作用。它永远不会通过验证,也永远不会显示任何错误。我已经抛弃了CI实例,可以看到我的验证设置正确,但没有运气。

这是我的控制器中的功能

$this->load->helper(array('form', 'url', 'html'));
$this->load->library('form_validation');
$data = array();

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

$validation_errors = validation_errors();
if( $validation_errors !== FALSE ):
    $data["validation_errors"] = $validation_errors;
endif;

if ($this->form_validation->run() == FALSE):
    $this->load->view('common/head-auth', $data);
    $this->load->view('pages/page-auth-login', $data);
    $this->load->view('common/foot-auth');
else:
    $this->load->model("site/users_model");
    $this->users_model->login();
endif;

这是我的视图文件

<main class="auth">
<header id="auth-header" class="auth-header"></header>

<?php
    $atts = array("class" => 'auth-form');
    echo form_open('auth/login', $atts);
?>
    <div class="form-group">
        <img src="<?php echo base_url( "assets/images/rplogo.png" ); ?>" alt="" width="100%">
    </div>
    <?php
        if( isset( $validation_errors ) ):
            $error_messages = "<div class=\"alert alert-danger alert-dismissible fade show\">";
            $error_messages .= "<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>";
            $error_messages .= $validation_errors;
            $error_messages .= "</div>";
            echo $error_messages;
        endif;
    ?>
    <div class="form-group">
        <div class="form-label-group">
            <input type="text" id="inputEmail" class="form-control" placeholder="Email Address" name="email" value="<?php echo set_value('email'); ?>">
            <label for="inputUser">Email Address</label>
        </div>
    </div>
    <div class="form-group">
        <div class="form-label-group">
            <input type="password" id="inputPassword" class="form-control" placeholder="Password" name="password">
            <label for="inputPassword">Password</label>
        </div>
    </div>
    <div class="form-group">
        <button class="btn btn-lg btn-primary btn-block" type="submit">Log In</button>
    </div>
    <div class="text-center pt-3">
        <a href="auth-recovery-password.html" class="link">Forgot Password?</a>
    </div>

</form>
<footer class="auth-footer"> © 2019 All Rights Reserved. </footer>

是的,我在没有解决方案的情况下浏览了有关此主题的所有其他帖子。

提前致谢

标签: phpcodeigniter

解决方案


if ($this->form_validation->run() == FALSE):
    $validation_errors = validation_errors();

    if( $validation_errors !== FALSE ):
        $data["validation_errors"] = $validation_errors;
    endif;

    $this->load->view('common/head-auth', $data);
    $this->load->view('pages/page-auth-login', $data);
    $this->load->view('common/foot-auth');
else:
    $this->load->model("site/users_model");
    $this->users_model->login();
endif;

推荐阅读