Ajax重置会话php

时间:2015-06-04 10:35:10

标签: php ajax session

我使用自己的框架,在localhost中一切正常,但不在服务器上。

我已登录,因此我已成为会话ID。

在一个ajax请求中,php脚本不会保持我的会话,如果我返回会话,会话是空的,但我在我身边,我保持会话。

如果服务器认为ajax请求是新用户,那就好了。

我不知道在哪里看,我不能在这里发布所有框架代码...... 昨天我已经有了这个问题(在工作中),然后在家里,我重新测试,一切都很好......

我不明白......

$(document).on('click', '.edit', function(){
    $.ajax({
        type: "POST",
        url: ROOT+"list",
        data: {id:id},
        headers: { 
            Accept : "application/json; charset=utf-8"
        },
        cache: false,
        success: function(data){
            console.log(data.sess.ROLE);
            if(data.status == "error"){
                //error
            }else{
                //ok
            }
        }
    });
});

控制器:

public function editAction(){
    //if(!$this->ROLE('tokayn')){ $this->redirectUrl('thread_index'); }

    if(Request::POST()){
        if(is_int($_POST['id'])){
            $user = $this->batiments->findById($_POST['id']);
            if($user->id_proprio == $_SESSION['id']){ 
                $data = array('status'=>'ok', 'message'=>$user);
                Request::renderJson($data);                         
            }else{
                Request::renderJson(array('sess'=>$_SESSION));  
                //$data = array('status'=>'error', 'message'=>'error');
                //Request::renderJson($data);   
            }
        }else{
            $data = array('status'=>'error', 'message'=>'error');
            Request::renderJson($data);     
        }
    }else{  
        //$this->redirectUrl('thread_index');
    }
}

如果用户未被记录,则会话角色是“访问者”#39;但是如果他已经登录,会话角色就会被连接起来。

我在ajax表格之前有一个回音并且已经连接了#39;。 然后,在提交ajax表单时,ajax请求返回' visitor'但是,如果我刷新,我会保持联系'回声...

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,问题是我正在使用

http://server:3344/somecontroller

当我从ajax请求时

{{1}}

并且会话未在https和http之间共享,因此请仔细检查这是否适用于您。