【问题标题】:Why does the session id change on some records?为什么某些记录上的会话 ID 会发生变化?
【发布时间】:2015-03-19 16:51:45
【问题描述】:

这是我的配置:

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 86400; //1 day
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 86400; //1 day

我不知道为什么当我处理一些记录时我的 session_id 会发生变化。

这是 session_id 没有改变的记录的错误日志(这是正确的)(AJAX 帖子):

[Thu Mar 19 14:26:14.080447 2015] [:error] [pid 7902] [client 192.168.10.126:58565] f83e35227ac23f60d175dbbb333f9554    <----- session Id (Ajax), referer: http://192.168.10.126/consumer/ignite.php/update_listings_controller?listingId=1129
[Thu Mar 19 14:26:15.516590 2015] [:error] [pid 7902] [client 192.168.10.126:58565] f83e35227ac23f60d175dbbb333f9554    <----- session Id (Ajax), referer: http://192.168.10.126/consumer/ignite.php/update_listings_controller?listingId=1129

这是 session_id 更改的记录的错误日志(不正确)(AJAX 帖子):

[Thu Mar 19 14:25:42.260545 2015] [:error] [pid 7590] [client 192.168.10.126:58512] 3ff5478a950d3f0d5d71f3c72d1102a0    <----- session Id (Ajax), referer: http://192.168.10.126/consumer/ignite.php/update_listings_controller?listingId=28453
[Thu Mar 19 14:25:47.322896 2015] [:error] [pid 7511] [client 192.168.10.126:58521] 5a7f2424717505a2a68ffe717e56971b    <----- session Id (Ajax), referer: http://192.168.10.126/consumer/ignite.php/update_listings_controller?listingId=28453

我对两者都使用相同的步骤。当我在后端处理一些记录时,我不确定 session_id 何时以及为什么会发生变化。我相信我的配置是正确的。

附加信息:

var opt;
            function showPreviewMode(div,section,editmode){
                showModalElement('pleasewait');
                jQuery.ajax({
                    url:"update_listings_controller/get_listing_content/<?php echo $this->input->get('listingId'); ?>/"+section+"/"+editmode,
                    success:function(data){
                        jQuery(div).html(data);
                        hideModalElement('pleasewait');
                        masking();
                        if(section == 3){
                            opt = new OptionTransfer("serviceArea", "serviceAreaIds");
                            opt.setAutoSort(true);
                            opt.setDelimiter(",");
                            opt.saveNewRightOptions("newRight");
                            var dol = new DynamicOptionList("serviceAreaLeft");
                            opt.init(document.whoDoTheyServe);
                        }else if(section== 4){
                            disAbledFee();
                            disabledMeds();
                            privatePay();
                        }else if(section== 5){
                             checkDay();
                             waitList();
                        }
                    }
                });
            }

【问题讨论】:

  • 旁白:disAbledFee 的情况是否正确?我想知道它是否应该是一个小写的a,就像它下面的调用一样。
  • 是的,没错。

标签: php ajax codeigniter session post


【解决方案1】:

这正是我所做的:

而不是调用$this-&gt;session-&gt;userdata('session_id'),

我只是这样称呼:

session_id();

它们没有相同的值,session_id(); 无论如何都不会改变。

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多