第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Codeigniter會(huì)話(huà)因Ajax調(diào)用而出錯(cuò)

Codeigniter會(huì)話(huà)因Ajax調(diào)用而出錯(cuò)

縹緲止盈 2019-10-29 10:36:18
我的CodeIgniter應(yīng)用程序使用會(huì)話(huà)庫(kù)并將數(shù)據(jù)保存到DB。我遇到了一些問(wèn)題,在某個(gè)ajax調(diào)用之后創(chuàng)建空白會(huì)話(huà)。經(jīng)過(guò)調(diào)查,似乎觸發(fā)了兩個(gè)同時(shí)進(jìn)行的函數(shù)調(diào)用,需要進(jìn)行會(huì)話(huà)驗(yàn)證。一個(gè)會(huì)失敗,另一個(gè)會(huì)沒(méi)事。我能夠通過(guò)不讓它們同時(shí)啟動(dòng)來(lái)解決此問(wèn)題。但是我仍然不明白為什么它會(huì)失敗。它與更新用戶(hù)cookie的一次調(diào)用和使第二次調(diào)用無(wú)效的調(diào)用有關(guān)嗎?還是在讀取數(shù)據(jù)庫(kù)時(shí)以某種方式死亡?我稍微看了一下Session核心類(lèi),卻沒(méi)有找到任何線索。如果有人遇到相同的問(wèn)題,我將不勝感激如何調(diào)試或引起問(wèn)題的任何建議。謝謝!編輯:我最初說(shuō)的是408狀態(tài)返回。那是無(wú)關(guān)的案件。這是并行觸發(fā)MyVar.refresh()的函數(shù):function (event){    var self$ = this.a$;    var uid  = this.b$.val();    var tid  = this.c$.val();    var jqxhr = $.post('/controller1/index',{'uid':uid,'tid':tid,'action':true},function(re)    {        if(re.message != 'success')        {            MyVar.alert('<span class="msg_error sprite"></span>' + re.error);            MyVar.refresh();        }     },'json');    MyVar.refresh();    return stopDefault(event);};可能的解決方案:找到了這個(gè):http : //codeigniter.com/forums/viewthread/102456/顯然,它不能與Ajax配合使用。一種解決方案是如果是ajax調(diào)用則禁止會(huì)話(huà)更新。唯一的問(wèn)題是我們的網(wǎng)站主要是用Ajax構(gòu)建的。另外,只需將sess_time_to_update降低到非常頻繁的水平,而ajax可以正常運(yùn)行。瀏覽器也進(jìn)行了刷新,并且沒(méi)有超時(shí)。不確定為什么ajax調(diào)用后會(huì)話(huà)ID是否已更改并且瀏覽器cookie從未更新過(guò)。
查看完整描述

3 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

嘗試這個(gè)


<?php

/**

 * ------------------------------------------------------------------------

 * CI Session Class Extension for AJAX calls.

 * ------------------------------------------------------------------------

 *

 * ====- Save as application/libraries/MY_Session.php -====

 */


class MY_Session extends CI_Session {


    // --------------------------------------------------------------------


    /**

     * sess_update()

     *

     * Do not update an existing session on ajax or xajax calls

     *

     * @access    public

     * @return    void

     */

    public function sess_update()

    {

        $CI = get_instance();


        if ( ! $CI->input->is_ajax_request())

        {

            parent::sess_update();

        }

    }


}


// ------------------------------------------------------------------------

/* End of file MY_Session.php */

/* Location: ./application/libraries/MY_Session.php */

問(wèn)題出在會(huì)話(huà)類(lèi)的sess_update函數(shù)中,該函數(shù)在X秒后生成一個(gè)新的session_id。每個(gè)頁(yè)面都有一個(gè)session_id,如果session_id在進(jìn)行ajax調(diào)用之前過(guò)期,則該調(diào)用將失敗。


在/ application / libraries /中創(chuàng)建一個(gè)名稱(chēng)為MY_Session(或您設(shè)置的前綴)的php文件,將此代碼粘貼在那里。該函數(shù)將覆蓋會(huì)話(huà)類(lèi)中的sess_update函數(shù),檢查每個(gè)請(qǐng)求是否由ajax發(fā)出,跳過(guò)sess_update函數(shù)。


將sess_expiration設(shè)置為更高的值是一個(gè)壞主意。這是一項(xiàng)安全功能,可防止您受到會(huì)話(huà)干擾


PD:我的英語(yǔ)不太流利,如果您聽(tīng)不懂,請(qǐng)告訴我。


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

在將其合并到穩(wěn)定分支之前,解決方案(最終?。┦菍reson的提交245bef5與數(shù)據(jù)庫(kù)模式結(jié)合使用:


CREATE TABLE IF NOT EXISTS  `ci_sessions` (

    session_id varchar(40) DEFAULT '0' NOT NULL,

    ip_address varchar(45) DEFAULT '0' NOT NULL,

    user_agent varchar(120) NOT NULL,

    last_activity int(10) unsigned DEFAULT 0 NOT NULL,

    user_data text NOT NULL,

    prevent_update int(10) DEFAULT NULL,

    PRIMARY KEY (session_id),

    KEY `last_activity_idx` (`last_activity`)

);

有關(guān)更多信息,請(qǐng)從上至下閱讀拉1283注釋。


查看完整回答
反對(duì) 回復(fù) 2019-10-29
  • 3 回答
  • 0 關(guān)注
  • 527 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)