目錄
回覆內容:
首頁 後端開發 php教程 javascript - 設定session會話失敗?

javascript - 設定session會話失敗?

Aug 18, 2016 am 09:15 AM
ci javascript php

用的一個圖片上傳外掛:uploadify,由於在IE和火狐下上傳302錯誤,我在前端傳了當前會話名稱session_name()給後台,重新建立會話,但是我做瞭如下,後台能收到session_name()的傳參,但是重新建立會話的時候,就是不成功,請問如何解決?

前台:

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

後端:

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

回覆內容:

用的一個圖片上傳外掛:uploadify,由於在IE和火狐下上傳302錯誤,我在前端傳了當前會話名稱session_name()給後台,重新建立會話,但是我做瞭如下,後台能收到session_name()的傳參,但是重新建立會話的時候,就是不成功,請問如何解決?

前台:

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

後端:

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

看看日誌有沒有報錯的資訊呢? session_id 必須要在會話開始前設置,是不是在這個控制器的__construct()呼叫之前就已經有其他地方開啟了session? 試試看在session_id那行前面加個session_abort()呢?

預設是透過 cookie 存 session_id 你看看cookie有沒有停用或清空

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles