PDA

View Full Version : session expire



pary_daryayi
چهارشنبه 21 خرداد 1393, 13:57 عصر
در حالت عادی وقتی مرورگر بسته میشه ، سشن هم از بین میره .
اما در کد ایگنایتر این اتفاق نمیفته .
تو تنظیمات کانفگیک اینا رو ست کردم اما جواب نمیده :




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

joker
چهارشنبه 21 خرداد 1393, 20:29 عصر
من تغییر خاصی در تنظیمات ندادم ، این مشکلی که میگن ندارم


$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$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'] = 300;


سوال :
سشن را در فایل نگهداری میکنه ( فولدری توی php.ini تعریف کردید ، یا در دیتابیس نگهداری میکنید؟

MRmoon
چهارشنبه 21 خرداد 1393, 20:55 عصر
من تغییر خاصی در تنظیمات ندادم ، این مشکلی که میگن ندارم


$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$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'] = 300;


سوال :
سشن را در فایل نگهداری میکنه ( فولدری توی php.ini تعریف کردید ، یا در دیتابیس نگهداری میکنید؟

فکر کنم CI سشن ها رو تو کوکی ذخیره می کرد. یا اشتباه می کنم؟

pary_daryayi
پنج شنبه 22 خرداد 1393, 12:34 عصر
فعلا نه فایل نه دیتابیس

joker
پنج شنبه 22 خرداد 1393, 13:50 عصر
تنظیمات php.ini

session.save_handler = files
session.save_path = "your directory for temp sessionfile"

فایل session.php در فولدر system/library را هم که احیانا دستش نزاشتی؟


class CI_Session {


var $sess_encrypt_cookie = FALSE;
var $sess_use_database = FALSE;
var $sess_table_name = '';
var $sess_expiration = 7200;
var $sess_expire_on_close = FALSE;
var $sess_match_ip = FALSE;
var $sess_match_useragent = TRUE;
var $sess_cookie_name = 'ci_session';
var $cookie_prefix = '';
var $cookie_path = '';
var $cookie_domain = '';
var $cookie_secure = FALSE;
var $sess_time_to_update = 300;
var $encryption_key = '';
var $flashdata_key = 'flash';
var $time_reference = 'time';
var $gc_probability = 5;
var $userdata = array();
var $CI;
var $now;



اگه با همه این موارد باز هم بعد از بسته شدن صفحه و بازشدن مجدد مثل اینه که سشنت از بین نرفته حکما بحث کوکی و ماندگاری اون هست ، کد که نوشتین را بزارید ببینیم چی داره دقیقا

pary_daryayi
شنبه 24 خرداد 1393, 14:29 عصر
نه این فایل رو دستکاری نکردم
session.php
کدوم قسمت کد رو بدم ؟
من فقط یه سشن ست کردم . همین :


$this->session->set_userdata('sess_cap',$data['cap_word']);

این هم قسمت config :


$config['sess_cookie_name'] = 'ci_session';$config['sess_expiration'] = 7200;$config['sess_expire_on_close'] = FALSE;$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'] = 300;


اینو هم ست کردم :$config['encryption_key']
و librarry مربوط به سشن هم که در autoload ، لود کردم

plague
یک شنبه 25 خرداد 1393, 10:03 صبح
من یه سایت داشتم با مشکلی مشابه شاید شما هم بخاطر همین باشه
متوجه شدم که از یه سیستم کش کوئری کلود فلیر استفاده میکنن و از اونجایی که سشن ها رو از دیتابیس میخوند و کوئری ها سیو میشدن مشکلات زیادی رو بوجود میورد از جمله اکسپایر نشدن سشن و شناسایی کاربر قبلی به جای کاربر فعلی

pary_daryayi
یک شنبه 25 خرداد 1393, 18:00 عصر
راه حل چیه ؟

joker
دوشنبه 26 خرداد 1393, 15:17 عصر
مطمئنی هر بار واقعا رندوم تولید میشه ؟ مقدار
$data['cap_word']
قبلش نمایش بده یه وقت درجا و ثابت داره تولید میکنه شما به اشتباه فکر میکنی سشن مشکل داره ( چون یکبار حواسم نبود این بلا سرم اومد :)

اگه بازم نشد ، یک نمونه سورس بزارید ما هم روی کد ایگنیتر خودمون تست بگیریم اگه برای ما هم مشکل نمایان بشه ، شاید معلوم شد ایراد کار کجاست