Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用CSRF codeigniter和ajax登录_Javascript_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

Javascript 使用CSRF codeigniter和ajax登录

Javascript 使用CSRF codeigniter和ajax登录,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我将使用CSRF codeigniter和ajax进行安全登录。但是我的语法有问题。$config['csrf_protection']=TRUE 这是我的表格: <?php echo form_open('admin/info_type_user_log/log_admin',array('id' => 'form-loginx'));?> <div class="input-group" style="margin-bottom:10px;">

我将使用CSRF codeigniter和ajax进行安全登录。但是我的语法有问题。$config['csrf_protection']=TRUE

这是我的表格:

<?php echo form_open('admin/info_type_user_log/log_admin',array('id' => 'form-loginx'));?>
        <div class="input-group" style="margin-bottom:10px;">
            <span class="input-group-addon lab"><span class="glyphicon glyphicon-user"></span></span>
            <input type="text" name="username" id="username" class="form-control inp usernamex" placeholder="username" required>
        </div>
        <div class="input-group" style="margin-bottom:10px;">
            <span class="input-group-addon lab"><span class="glyphicon glyphicon-lock"></span></span>
            <input type="password" name="password" id="password" class="form-control inp passwordx" placeholder="password" required>
        </div>
        <button type="submit" name="submit" class="submit_login btn btn-md btn-primary">Login</button>
        <label><input type="checkbox" class="lihat"> lihat password</label>
        <?php echo form_close();?>
我的模型是:

function valid_log($user,$pass){
    $this->db->where('username', $user);
    $this->db->where('password', $pass);
    $this->db->where('status', 'aktif');
    $this->db->where('level', 'admjosslog21');
    $this->db->where('akses', '1');
    return $this->db->get('user');
}

在ajax中传递
标记名
散列键
,然后通过post in控制器获取它

  data : {csrfName:csrfName,csrfHash:csrfHash,me.serialize},
内部控制器

 $reponse = array(
        'csrfName' => $this->input->post('csrfName'),
        'csrfHash' => $this->input->post('csrfHash')
        );
试试这个代码

$("#state1").change(function () {
            $.ajax({
                url: "<?php echo base_url('admin/get_districtsfromstates'); ?>",
                type: "POST",
                data: {id: $(this).val(),'<?php echo $this->security->get_csrf_token_name(); ?>': '<?php echo $this->security->get_csrf_hash(); ?>'},
                success: function (data)
                {
                    $("#district1").html(data);
                }
            });
        });
$(“#state1”).change(函数(){
$.ajax({
url:“”,
类型:“POST”,
数据:{id:$(this).val(),'':'},
成功:功能(数据)
{
$(#地区1”).html(数据);
}
});
});

Javascript中的PHP是一个丑陋的解决方案,只需将您的脚本列入白名单,如下所示:

$config['csrf_exclude_uris'] = array(
'admin/log_admin', '...', '...',
);
$("#state1").change(function () {
            $.ajax({
                url: "<?php echo base_url('admin/get_districtsfromstates'); ?>",
                type: "POST",
                data: {id: $(this).val(),'<?php echo $this->security->get_csrf_token_name(); ?>': '<?php echo $this->security->get_csrf_hash(); ?>'},
                success: function (data)
                {
                    $("#district1").html(data);
                }
            });
        });
$config['csrf_exclude_uris'] = array(
'admin/log_admin', '...', '...',
);