# زبان های اسکریپتی > PHP > CodeIgniter >  session expire

## pary_daryayi

در حالت عادی وقتی مرورگر بسته میشه ، سشن هم از بین میره .
اما در کد ایگنایتر این اتفاق نمیفته .
تو تنظیمات کانفگیک اینا رو ست کردم اما جواب نمیده :



$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

من تغییر خاصی در تنظیمات ندادم ، این مشکلی که میگن ندارم

$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

> من تغییر خاصی در تنظیمات ندادم ، این مشکلی که میگن ندارم
> 
> $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;
> ...


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

----------


## pary_daryayi

فعلا نه فایل نه دیتابیس

----------


## joker

تنظیمات 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;
> ...


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

----------


## pary_daryayi

نه این فایل رو دستکاری نکردم 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

من یه سایت داشتم با مشکلی مشابه شاید شما هم بخاطر همین باشه 
متوجه شدم که از یه سیستم کش کوئری کلود فلیر استفاده میکنن و از اونجایی که سشن ها رو از دیتابیس میخوند و کوئری ها سیو میشدن مشکلات زیادی رو بوجود میورد از جمله اکسپایر نشدن سشن و شناسایی کاربر قبلی به جای کاربر فعلی

----------


## pary_daryayi

راه حل چیه ؟

----------


## joker

مطمئنی هر بار واقعا رندوم تولید میشه ؟ مقدار $data['cap_word']
 قبلش نمایش بده یه وقت درجا و ثابت داره تولید میکنه شما به اشتباه فکر میکنی سشن مشکل داره ( چون یکبار حواسم نبود این بلا سرم اومد :)
اگه بازم نشد ، یک نمونه سورس بزارید ما هم روی کد ایگنیتر خودمون تست بگیریم اگه برای ما هم مشکل  نمایان بشه ، شاید معلوم شد ایراد کار کجاست

----------

