Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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
Php 如果会话不存在,Codeigniter ajax函数不会重定向到登录页面_Php_Ajax_Codeigniter - Fatal编程技术网

Php 如果会话不存在,Codeigniter ajax函数不会重定向到登录页面

Php 如果会话不存在,Codeigniter ajax函数不会重定向到登录页面,php,ajax,codeigniter,Php,Ajax,Codeigniter,我正在为我的web应用程序使用codeigniter,它具有用户注册功能。我还在大多数地方使用ajax加载页面。问题是,如果通过ajax调用某个函数来加载页面,而会话不存在,则它不会重定向到登录页面。但当我们通过浏览器访问同一个URL时,它就起作用了(它正在重定向到登录页面)。我应该如何解决这个问题 这是检查我们正在使用的会话的代码 $userid=$this->phpsession->get('userid'); if(!($userid)) {

我正在为我的web应用程序使用codeigniter,它具有用户注册功能。我还在大多数地方使用ajax加载页面。问题是,如果通过ajax调用某个函数来加载页面,而会话不存在,则它不会重定向到登录页面。但当我们通过浏览器访问同一个URL时,它就起作用了(它正在重定向到登录页面)。我应该如何解决这个问题

这是检查我们正在使用的会话的代码

    $userid=$this->phpsession->get('userid');
    if(!($userid))
    { 
        redirect('home','refresh');
    }

在控制器中,检测是否是ajax请求:

if($this->input->is_ajax_request())
{
    $userid=$this->phpsession->get('userid');
    if(!($this->usermodel->is_user($userid)))
    { 
        echo "1";
    }
}
在ajax中,检测响应并重定向到登录页面:

$.post('index.php/login', function(data){

if(data == "1")
{
document.location.href = <?php echo site_url("home"); ?>;
}

});
$.post('index.php/login',函数(数据){
如果(数据==“1”)
{
document.location.href=;
}
});

请发布ajax代码,登录controller.ajax将不会执行重定向(“主页”、“刷新”);谢谢你的回答,亚当。我来看看,这不是个好主意。如果用户禁用javascript,则不会重定向它们。@Mike,我建议将ajax代码添加到控制器中,而不是删除旧代码。但如果我包含上面建议的代码,则会显示此错误
致命错误:调用未定义的方法CI\u Input::is\u ajax\u request()在/var/www/panhive/system/application/controllers/stores.php中,函数位于codeigniter 2中。请参阅: