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

javascript - Sitzung konnte nicht eingerichtet werden?

WBOY
Freigeben: 2016-08-18 09:15:52
Original
1357 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Ü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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage