doupingmao1903 2015-06-29 17:19
浏览 28

codeigniter ajax登录错误div和会话问题

i have stuck creating a login using codeigniter 3.0 with AppUI 2.1 bootstrap theme, it always show the error div in login and everytime i successfully logged in, it will also successfully direct to Maps view but when i navigate to Information Table view and go back to maps view, it will redirect to login view.

Any suggestions? Here's my code:

model/Login_model.php

class Login_model extends CI_Model {

public function login($username, $password) {
    $passwordEncrypt = sha1($password);
    $this->db->where('username', $username);
    $this->db->where('password', $passwordEncrypt);
    $query = $this->db->get('admin');
    if ($query->num_rows() == 1) {
        foreach ($query->result() as $row) {
            $data = array(
                'username' => $row->username,
                'password' => $row->password,
                'logged_in' => true
            );
        }
        $this->load->library('session');
        $this->session->set_userdata($data);
        return true;
    } else {
        return false;
    }
}

public function isLoggedIn() {
    header("cache-Control: no-store, no-cache, must-revalidate");
    header("cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    $is_logged_in = $this->session->userdata('logged_in');

    if (!isset($is_logged_in) || $is_logged_in !== true) {
        redirect('/');
        exit;
    }
}

}

views/page_ready_login.php

<?php
include 'assets/Backend/inc/config.php';
$template['title'] = 'BCGIS | LOGIN';
?>
<?php include 'assets/Backend/inc/template_start.php'; ?>

<!-- Login Container -->
<div id="login-container">
    <!-- Login Header -->
    <h1 class="h3 text-light text-center push-top-bottom fadeIn animated">
        <div class="row">
            <div class="col-lg-3 fadeIn animated">
                <img src="<?= base_url(); ?>assets/Backend/images/Ph_seal_davao_del_norte_panabo_city.png" style="width: 95px; height: 80px;"/>
            </div>
            <div class="col-lg-9 fadeIn animated">
                <strong>Brgy. Cagangohan Geographical Information System</strong>
            </div>
        </div>
    </h1>
    <!-- END Login Header -->

    <!-- Login Block -->
    <div class="block fadeIn animated">
        <!-- Login Title -->
        <div class="block-title">
            <h2>Administration Login</h2>
        </div>
        <!-- END Login Title -->

        <!-- Login Form -->
        <form id="form-login" action="<?= base_url(); ?>Maps" method="post" class="form-horizontal">
            <p class="alert alert-danger" id="response"><b>Invalid Administrator's Username or Password.</b></p>
            <div class="form-group">
                <div class="col-xs-12">
                    <input type="text" id="login-username" name="login-username" class="form-control" placeholder="Username..">
                </div>
            </div>
            <div class="form-group">
                <div class="col-xs-12">
                    <input type="password" id="login-password" name="login-password" class="form-control" placeholder="Password..">
                </div>
            </div>
            <div class="form-group form-actions">
                <div class="col-sm-offset-2 col-sm-8 text-center">
                    <center>
                        <button type="submit" class="btn btn-effect-ripple btn-block btn-primary"><i class="fa fa-check"></i> Sign In</button>
                    </center>
                </div>
            </div>
        </form>
        <!-- END Login Form -->
    </div>
    <!-- END Login Block -->

    <!-- Footer -->
    <footer class="text-muted text-center fadeIn animated">
        <small><span id="year-copy"></span> &copy; <a href="#"><?php echo $template['name'] . ' ' . $template['version']; ?></a></small>
    </footer>
    <!-- END Footer -->
</div>
<!-- END Login Container -->

<?php include 'assets/Backend/inc/template_scripts.php'; ?>

<!-- Load and execute javascript code used only in this page -->
<script src="<?= base_url(); ?>assets/Backend/js/pages/readyLogin.js"></script>
<script>
    $(function () {
        ReadyLogin.init();
    });
</script>

<?php include 'assets/Backend/inc/template_end.php'; ?>

controller/Login.php

class Login extends CI_Controller {

public function __construct() {
    parent::__construct();
    $this->load->library('session');
    $this->load->helper('form');
    $this->load->helper('url');
    $this->load->helper('html');
    $this->load->library('form_validation');
    $this->load->Model("Login_model");
}

public function index() {
    $this->load->view('Backend/page_ready_login');
}

public function logout() {
    $this->session->sess_destroy();
    redirect(base_url(), 'refresh');
}

public function login() {

}

controller/Maps.php (where it suppose to direct when successfully logged in)

class Maps extends CI_Controller {

public function __construct() {
    parent::__construct();
    $this->load->Model('Login_model');
}

public function index() {
    $username = $this->input->post('login-username');
    $password = $this->input->post('login-password');

    if ($this->Login_model->login($username, $password)) {
        $this->Login_model->isLoggedIn();
        $this->load->view('Backend/page_comp_maps');
    } else {
        redirect(base_url(), 'refresh');
    }
}

assets/Backend/js/pages/readyLogin.js

var ReadyLogin = function () {

return {
    init: function () {
        /*
         *  Jquery Validation, Check out more examples and documentation at https://github.com/jzaefferer/jquery-validation
         */

        /* Login form - Initialize Validation */
        $('#form-login').validate({
            errorClass: 'help-block shake animated', // You can change the animation class for a different entrance animation - check animations page
            errorElement: 'div',
            errorPlacement: function (error, e) {
                e.parents('.form-group > div').append(error);
            },
            highlight: function (e) {
                $(e).closest('.form-group').removeClass('has-success has-error').addClass('has-error');
                $(e).closest('.help-block').remove();
            },
            success: function (e) {
                e.closest('.form-group').removeClass('has-success has-error');
                e.closest('.help-block').remove();
            },
            rules: {
                'login-username': {
                    required: true,
                    error: true
                },
                'login-password': {
                    required: true,
                    minlength: 5,
                    error: true
                }
            },
            messages: {
                'login-username': {
                    required: "Please enter Administrator's username.",
                    error: "Invalid Administrator's username."
                },
                'login-password': {
                    required: "Please provide Administrator's password.",
                    minlength: "Admin's password must be at least 5 characters long.",
                    error: "Invalid Administrator's password."
                }
            }
        });
        $("#form-login").submit(function (e){
            e.preventDefault();
            var url = $(this).attr('action');
            var method = $(this).attr('method');
            var data = $(this).serialize();

            $.ajax({
               url:url,
               type:method,
               data:data
            }).done(function(data){
               if(data !=='')
                {
                    $("#response").show('fast');
                    $("#response").effect( "shake" );
                    $('#form-login')[0].reset();
                }
                else
                {
                window.location.href = url;
                throw new Error('go');
                } 
            });
        });

        $( "div" ).each(function( index ) {
        var cl = $(this).attr('class');
        if(cl ==='')
            {
                $(this).hide();
            }
        });
    }
};

}();

in readyLogin.js between $('#form-login').submit(function(e){}), it seems the code in it didn't work.

for more, here the link for my project.

Any help will much appreciated. :)

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 微信会员卡等级和折扣规则
    • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
    • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
    • ¥15 gdf格式的脑电数据如何处理matlab
    • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
    • ¥100 监控抖音用户作品更新可以微信公众号提醒
    • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
    • ¥70 2048小游戏毕设项目
    • ¥20 mysql架构,按照姓名分表
    • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分