PDA

View Full Version : سوال: پاک نشدن کوکی ها و سشن ها در فایرفاکس



naser_haji
سه شنبه 23 اسفند 1390, 11:42 صبح
سلام
وقتی من یه سشن یا یه کوکی میسازم اگه کاربر با فایرفاکس اومده باشه با بستن مرورگر بازم سشن و کوکی میمونه ولی اگه با اینترنت اکسپلورر باشه نه سشن باقی میمونه نه کوکی(زمانی واسش معرفی نکردم که با بستن پاک بشه)
خوب حالا چیکار کنم که توی فایرفاکس نیز هنگام بستعه شدن مرورگر همه سشن ها و کوکی ها پاک بشه

MMSHFE
سه شنبه 23 اسفند 1390, 11:48 صبح
منظورتون فایل سشن هست؟ چون خود متغیرهای سشن از بین میرن. میتونید چک کنید که با مراجعه دوباره به سایت بعد از بازکردن مجدد مرورگر، سشن و کوکی (اگه برای کوکی طول عمر نگذاشته باشین) کار نمیکنه و مقادیرشون از بین رفته. فایل هم خیلی مهم نیست چون معمولاً سرورها یک سیستم Garbage Collector دارن که فایلهای بلا استفاده پوشه tmp رو بعد از مدت خاصی حذف میکنه. موفق باشید.

naser_haji
سه شنبه 23 اسفند 1390, 12:40 عصر
خود متغیرهای سشن از بین میرن. میتونید چک کنید که با مراجعه دوباره به سایت بعد از بازکردن مجدد مرورگر، سشن و کوکی (اگه برای کوکی طول عمر نگذاشته باشین) کار نمیکنه و مقادیرشون از بین رفته.
درسته و طبق روال عادی باید متغیرهای سشن و کوکی بعد از بستن مرورگر بسته بشه.ولی مشکل اینجاست که با بستن مرورگر فایر فاکس و باز کردن دوباره همون صفحه و حتی با رفرش کردن بازم سشن یا کوکی وجود داره.البته توی اکسپلورر درست کار میکنه و با بستن مرورگر سشن ها و کوکی ها هم پاک میشه

حالا میگم برای اینکه فایرفاکس با بسته شدن، سشن ها و کوکی ها رو هم پاک کنه باید چیکار کنم

MMSHFE
سه شنبه 23 اسفند 1390, 16:29 عصر
مطمئنید صفحه Cache نشده؟ یکبار با Ctrl+F5 صفحه رو مجدداً درخواست کنید. بعضی اوقات مرورگرها حتی با کلید F5 هم صفحه Cacheشده رو باز میکنن. اگه اینطور بود و مشکل با این کار رفع شد، کد زیر رو ابتدای صفحاتتون بگذارین:


<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
?>

تا اجازه Cacheکردن صفحه رو به مرورگر نده. موفق باشید.

naser_haji
سه شنبه 23 اسفند 1390, 19:19 عصر
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
?>



آره با این کد درست شد و توی فایرفاکس هم دیگه مشکل حل شده.ولی راه حلی نیست که صفحه کش بشه ولی کاری کنیم که متغیر های سشن کش نشن.آخه بعضی از صفحاتم در روز نیاز هست که بیشتر از 10000 بار در روز باز بشه که معمولا کاربران ثابت هستند و اگه از کش استفاده بشه تو بحث سرعت خیلی مؤثره

MMSHFE
سه شنبه 23 اسفند 1390, 22:40 عصر
میتونید روند Cache رو خودتون تغییر بدین. مثلاً صفحات پر بازدید رو خودتون روی سرور توی فایل Cache کنید و موقع درخواست، چک کنید ببینید اگه فایل Cache بود از اونجا بخونه. توی اون فایل هم این هدرها رو بگذارین. اینطوری دیگه از دیتابیس استخراج نمیشه و سرعت کار فایلها هم خیلی بالاست. اگر هم اطلاعات تغییر کرد، فایل Cache رو حذف کنید. موقع نمایش هم همونطور که گفتم، شرط بگذارین که اگه فایل Cache بود اون رو بخونه و نشون بده و اگه نبود (یعنی اطلاعات تغییر کرده و فایل Cache حذف شده)، از دیتابیس بخونه و فایل Cache رو دوباره بسازه و از اون به بعد، مجدداً از فایل Cache جدید اطلاعات خونده میشه. اینطوری خودتون اطلاعات رو Cache میکنید، نه مرورگر و طبیعتاً مشکلات ناسازگاری مرورگرها رو نخواهید داشت. موفق باشید.