私はCIセッションクラスを使用するCIアプリケーションを持っています。 Internet ExplorerのCodeigniterセッションの問題
- ユーザー負荷のページ:ここで私はとのトラブルを抱えているプロセスですページ
- 前のレコードのセッション変数に基づいてDBからレコードを取得する要求(同じレコードを2回連続して返すことはできません)
- 新しいレコードにuserdata変数を再設定しますさんID
などなど
これはChromeとFFで完璧に動作します。しかし、明らかに私がIEでテストするときにはうまくいきません。
ajax要求が実行され、最初のレコードが取得されます。この時点で、セッション変数が設定されています。ユーザーは更新されますが、同じレコードが残ります。
セッションクッキーをクリアして新しいレコードをリフレッシュすると、この時点で取得されます。
私が変更しようとしました:
$config['sess_cookie_name'] = 'ci_session';
を
$config['sess_cookie_name'] = 'cisession';
に私は別のポストが、運で見たと同じように。また、セッションストレージのDBを使用してみましたが、まだ運がない。ここで
が問題のページです:http://givestream.co.uk/streamクロムやFFで読み込み、このいずれかのリフレッシュまたは「次へ」ボタンを押すと、あなたはそれが新しい慈善を取得表示されます。 IEでこれを試してください。セッションクッキーをクリアしないとうまくいきません。
JS機能レコードを取得する:
function get_matches(){
var charity;
var user_total;
jQuery.get("/stream/get_charity/", function(data){
charity = data.charity;
user_total = charity.user_totals;
/** CHANGE URL **/
if (history.pushState) {
window.history.pushState("object or string", "Title", "/stream/"+charity.slug);
}
/*****************/
// can user accept?
if(charity.can_donate == 0){
// No
jQuery('.alert-message').show();
} else{
jQuery('.alert-message').hide();
}
// Charity Binding
jQuery('p#char_modal_description').html(charity.description);
jQuery('.char_more_link').attr('id', charity.id);
jQuery('h1#char_name').html(charity.char_name);
jQuery('h2#char_modal_header').html(charity.char_name);
jQuery('p#char_desc').html(charity.description);
jQuery('#website').html('<label>Website</label><a href="'+charity.website+'" style="color:#08C;" target="_blank">'+charity.website+'</a>');
jQuery('#char_total').text('\u00A3'+charity.total);
jQuery('#donors').html(charity.recent_donors);
jQuery('#fans').html(charity.recent_fans);
if (typeof user_total !== 'undefined') {
jQuery('#total_char_month').text('\u00A3'+user_total.total_char_month);
jQuery('#total_char_alltime').text('\u00A3'+user_total.total_char_alltime);
var has_user_seen_stream_notice = user_total.has_user_seen_stream_notice;
if(has_user_seen_stream_notice == false){
jQuery('#stream_help').show();
}
} else{
jQuery('#total_char_month').text('\u00A3'+0);
jQuery('#total_char_alltime').text('\u00A3'+0);
}
/** TWITTER SHARE BUTTON CHANGE URL **/
var twitter = '<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://givestream.co.uk/stream/'+charity.slug+'" data-via="givestreamuk" data-hashtags="socialgiving">Tweet</a>';
jQuery('#twitter_share').html(twitter);
var jstext = '!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");';
var script = document.createElement("script");
script.type = "text/javascript";
script.text = jstext;
jQuery('#twitter_share').append(script);
// *************************************//
/** FACEBOOK SHARE WIDGET **/
var fb = '<iframe src="//www.facebook.com/plugins/like.php?href=http://givestream.co.uk/stream/'+charity.slug+'&send=false&layout=standard&width=280&show_faces=false&action=like&colorscheme=light&font&height=35&appId=119083868224729" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:280px; height:35px;" allowTransparency="true"></iframe>';
jQuery('#fb_share').html(fb);
// ***********************//
jQuery('#char_website').html(charity.website);
jQuery('#sectors').html('<label>Tags</label>'+charity.sectors);
jQuery('#permalink').val('http://givestre.am/stream/'+charity.slug);
jQuery('#refresh').activity(false);
get_charity_gallery();
get_charity_shouts();
}, 'json');
return;
}
CodeIgniterは、PHPフレームワークです。 PHPはサーバーサイドの言語であると見なしますが、これはCodeIgniterに関連するものではありません。代わりに、これはJavaScriptやセッションの問題のようです。 JavaScriptをいくつか見せてください。 – kba
ciフォーラムでciセッションの問題をIEで簡単に検索すると、セッションライブラリにいくつかの問題があることがわかります。ほとんどのpplはciセッションの設定を変更することでそれを解決するようです。私はいくつかのjsを入れますが、 – iamjonesy