چگونه مدت اعتبار session را تغییر دهم؟

ali_shmki

New Member
من مدت زیادیه که دنبال جواب این سوال میگردم اما متاسفانه هنوز جواب قانع کننده و کاملی نگرفتم!
آیا در PHP میشه مدت اعتبار (Timeout) متغیر های از نوع session را افزایش داد؟
منظورم دقیقا session هست. session ی که روی سرور ذخیره میشه. نه cookie و یا هر چیز دیگه ای
 

Masoud1365

مدیر انجمن
من مدت زیادیه که دنبال جواب این سوال میگردم اما متاسفانه هنوز جواب قانع کننده و کاملی نگرفتم!
آیا در php میشه مدت اعتبار (timeout) متغیر های از نوع session را افزایش داد؟
منظورم دقیقا session هست. Session ی که روی سرور ذخیره میشه. نه cookie و یا هر چیز دیگه ای

با استفاده از کوکی مدت زمان سشن رو چک کن !
 

ali_shmki

New Member
چک کنم که تموم شده یا نه؟ اگه منظورتون اینه، سوال منو متوجه نشدید!
قصد من اینه که حالا حالاها تموم نشه. یعنی مثلا اگر یه سشن به طور پیشفرض 20 دقیقه اعتبار داشته باشه، یه کاری کنم که این 20 دقیقه به 40 دقیقه افزایش پیدا کنه.
اگه کدش رو بنویسید ممنون میشم.
 

Masoud1365

مدیر انجمن
چک کنم که تموم شده یا نه؟ اگه منظورتون اینه، سوال منو متوجه نشدید!
قصد من اینه که حالا حالاها تموم نشه. یعنی مثلا اگر یه سشن به طور پیشفرض 20 دقیقه اعتبار داشته باشه، یه کاری کنم که این 20 دقیقه به 40 دقیقه افزایش پیدا کنه.
اگه کدش رو بنویسید ممنون میشم.

شما اعتبار کوکی رو چطوری چک میکنید ؟ همونطوری کوکی چک بشه اگر معتبر بود متغیر سشن رو به صورت معتبر مقدار دهی کنه وگرنه سشن ایجاد نشه همین !
 

justpersian

Member
کد نداره
از توی سرور تنظیم میشه !
در ضمن با کوکی هم همونطور که دوستمون گفت می تونید این کارو بکنید !
منظورم اینه که از کوکی و سشن با هم استفاده کنید
روشی که خیلی از سایت های بزرگ ازش استفاده می کنن
 

ali_shmki

New Member
حرفتون کاملا متین.
من میدونم شما آدم حرفه ای هستید. اما فکر نکنم این کار زیاد حرفه ای باشه.
منظور شما اینه که مقدار session رو داخل cookie بریزم؟
خب ممکنه مرورگر کاربر cookie ها رو دریافت نکنه (غیر فعال باشه). اگر هم فعال باشه فکر نکنم از نظر امنیتی کار درستی باشه!

این طور نیست؟
 

Masoud1365

مدیر انجمن
حرفتون کاملا متین.
من میدونم شما آدم حرفه ای هستید. اما فکر نکنم این کار زیاد حرفه ای باشه.
منظور شما اینه که مقدار session رو داخل cookie بریزم؟
خب ممکنه مرورگر کاربر cookie ها رو دریافت نکنه (غیر فعال باشه). اگر هم فعال باشه فکر نکنم از نظر امنیتی کار درستی باشه!

این طور نیست؟

چند نکته :
کوکی رو همین جوری که ذخیره نمکنن باید با استفاده از توابع هش و یه سری از این کارا رمز گذاری بشه !
شما مقدار کوکی رو چک میکنید و یا کوکی رو داخل سشن میریزید یا سشن رو مقدار دهی میکنید نه اینکه مقدار سشن رو داخل کوکی بریزید .
در مورد امنیتش هم اینجا یادمه که یه بار بحث شد یه سرچ بزنید.:wink:

موفق باشید.
 

ali_shmki

New Member
واقعا این تنها راه حله؟
اگه کوکی مرورگر غیرفعال باشه که این راه جواب نمیده.
چک کردن کوکی رو با این کد انجام بدم؟
کد:
if(isset($_COOKIE['NAME']))
 

sajadmaz

Member
PHP:
$timeout = 3600; // 3600 seconds = 60 minutes = 1 hour
ini_set('session.gc_maxlifetime', $timeout);

این برای تنظیم مدت زمان اکسپایر شدن سشن


برای چک کردن کوکی
PHP:
$_COOKIE[name]

استفاده کن

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

ali_shmki

New Member
واقعا ممنونم
راستی منظور از کد 'session.gc_maxlifetime'
چیه؟

این کد رو باید بعد از تعریف session بگذارم یا قبل از اون؟
آیا واسه تمام session ها باید اونو بنویسم؟
یا اینکه یک بار بنویسم کافیه؟

زمان پیشفرض expire شدن کوکی چقدر هست؟
 
آخرین ویرایش:

sajadmaz

Member
واقعا ممنونم
راستی منظور از کد 'session.gc_maxlifetime'
چیه؟

این کد رو باید بعد از تعریف session بگذارم یا قبل از اون؟
آیا واسه تمام session ها باید اونو بنویسم؟
یا اینکه یک بار بنویسم کافیه؟

شما احتمالا یه فایل config.php یا یه همچین چیزی دارین که تنظیمات دیتابیس و اینهارو داخلش دارین این کد رو هم داخلش بنویسید یک بار کافی هست چون دیگه همجا اون فایل کانفیگ include میشه
 

ali_shmki

New Member
نه config ندارم. config کجا هست؟
اگه نداشته باشم میتونم کد رو توی صفحه اصلی بگذارمش؟
 

جدیدترین ارسال ها

بالا