Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Sitzung konnte nicht eingerichtet werden?

javascript - Sitzung konnte nicht eingerichtet werden?

WBOY
WBOYOriginal
2016-08-18 09:15:521354Durchsuche

habe ein Bild-Upload-Plugin verwendet: uploadify Aufgrund des 302-Fehlers beim Hochladen unter IE und Firefox habe ich den aktuellen Sitzungsnamen session_name() an das Backend im Frontend übergeben, um es erneut zu laden. Richten Sie die Sitzung ein, aber ich habe es getan Wie unten gezeigt kann der Hintergrund die Parameter von session_name() empfangen, aber beim erneuten Einrichten der Sitzung ist dies nicht erfolgreich. Wie kann ich das Problem lösen?

Rezeption:

<code>//这是uploadify插件向后端传送数据的参数
'formData'     : {
     'timestamp' : '<?php echo $timestamp;?>',
     'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
     '<?php echo session_name();?>' : '<?php echo session_id();?>',
     //上面的session参数渲染后是这样:'PHPSESSID':'',
            },</code>

Backend:

<code>//这是一个公共的控制器的初始化方法 里面验证登陆
function __construct() {
    parent::__construct();
    $session_name = session_name();  
    $post_session_name = $this->input->post($session_name);
    if (isset($post_session_name)) { //测试过  可以进入这里
        session_id($post_session_name);  //但是在这个地方好想设置会话失败
        session_start();
    }
    if ( !$this->session->valid_user() ){ //因为设置会话失败 这里通不过 前端返回302
        redirect( module_url( 'common/login' ) );
    }
}
</code>

Antwortinhalt:

habe ein Bild-Upload-Plugin verwendet: uploadify Aufgrund des 302-Fehlers beim Hochladen unter IE und Firefox habe ich den aktuellen Sitzungsnamen session_name() an das Backend im Frontend übergeben, um es erneut zu laden. Richten Sie die Sitzung ein, aber ich habe es getan Wie unten gezeigt kann der Hintergrund die Parameter von session_name() empfangen, aber beim erneuten Einrichten der Sitzung ist dies nicht erfolgreich. Wie kann ich das Problem lösen?

Rezeption:

<code>//这是uploadify插件向后端传送数据的参数
'formData'     : {
     'timestamp' : '<?php echo $timestamp;?>',
     'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
     '<?php echo session_name();?>' : '<?php echo session_id();?>',
     //上面的session参数渲染后是这样:'PHPSESSID':'',
            },</code>

Backend:

<code>//这是一个公共的控制器的初始化方法 里面验证登陆
function __construct() {
    parent::__construct();
    $session_name = session_name();  
    $post_session_name = $this->input->post($session_name);
    if (isset($post_session_name)) { //测试过  可以进入这里
        session_id($post_session_name);  //但是在这个地方好想设置会话失败
        session_start();
    }
    if ( !$this->session->valid_user() ){ //因为设置会话失败 这里通不过 前端返回302
        redirect( module_url( 'common/login' ) );
    }
}
</code>

Überprüfen Sie das Protokoll, um zu sehen, ob eine Fehlermeldung vorliegt? session_id Es muss vor dem Start der Sitzung festgelegt werden. Ist die Sitzung vor dem __construct()-Aufruf dieses Controllers bereits an anderer Stelle geöffnet? Versuchen Sie, session_abort() vor der Zeile „session_id“ hinzuzufügen?

Standardmäßig wird die Sitzungs-ID über ein Cookie gespeichert. Bitte überprüfen Sie, ob das Cookie deaktiviert oder gelöscht ist

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn