سؤال

وحاليا، في بلدي php السيناريو، بعد تسجيل المستخدم في، ط المخزنة session_login = 1. ولكن لدي مشكلة. لدي عادة في استخدام فايرفوكس، متعدد التبويب (اعتقد معظم الناس وجميع اليوم متصفحات الويب التطبيق لديها وظيفة متعدد التبويب). لقد أغلقت علامة التبويب التي لديها الدورة، ولكن لم أكن إغلاق المستعرض. بعد ساعات قليلة، ويعود في نفس الصفحة التي تتطلب مني الدخول، ولكن لم يحدث ذلك. أنها لا تتطلب مني الدخول مرة أخرى (أنا أفكر أن يكون تسمى "الدورة"). هناك على أية حال لخروج المستخدم إذا كان إغلاق علامة التبويب بدلا إغلاق المتصفح ؟؟

ولدي 1 الحل في الوقت الراهن، ركلة وقت الخمول بها. ولكن، لدي معرفة محدودة جدا / التاريخ شيء الوقت في بي، لذلك هذا سيكون الخيار الأخير. أردت أن أعرف، هل هناك أي شيء آخر يمكنني القيام به، بجانب استخدام الوقت الخمول؟

هل كانت مفيدة؟

المحلول

وPHP لديها وسيلة سهلة لتحديد متى جلسة تستمر قبل انقضاء المهلة:

session_set_cookie_params(3600); // make it expire after 1 hour

ومجرد تمريرها عدد الثواني التي تريدها الدورة إلى آخر (في المثال، 1 ساعة = 60 دقيقة = 3600 ثانية).

http://us2.php.net /manual/en/function.session-set-cookie-params.php

نصائح أخرى

وأخلى الكوكي الجلسة فقط من المستعرض عند إغلاق جلسة المتصفح (أي عند إغلاق المتصفح): ومن هنا جاءت تسميته. إذا كنت ترغب في الجلسة إلى أن يتم مسح قريبا بعد إغلاق علامة التبويب التي يمكن تحديد وقت انتهاء الصلاحية قصيرة جدا على الكعكة (حوالي 5 دقائق) وتخزين نفسه في قاعدة البيانات. ثم لها وظيفة جافا سكريبت على صفحة ويب استدعاء الملف من الخادم الخاص بك كل دقيقة: هذا الملف ثم "ينعش" دخول الكعكة / قاعدة بيانات لالدقائق الخمس المقبلة. إذا كانت ثم ترك موقعك لأكثر من خمس دقائق، ثم يتم إبطال الدورة.

ويمكنك أيضا إضافة وظيفة جافا سكريبت "معالج onunload" الذي يكتشف إذا كان قد أغلق صفحة ويب أو ذهب إلى صفحة أخرى: هل يمكن إضافة هوك على هذه الدعوة إلى وظيفة "destroycookie" - ولكن، عليك أن تحقق أنهم لم يذهب فقط إلى صفحة أخرى على موقع الويب الخاص بك وليس لديهم فعلا صفحتين من موقعك مفتوحة في اثنين من علامات التبويب.

وأعتقد أن الخيار الذي تبحث عنه هو الإعداد للانتهاء جلسة الكعكة. أنا لا أتذكر الأمر PHP لذلك، ولكن يجب أن تكون قادرا على تعيين ملف تعريف الارتباط أن تنتهي عند إغلاق النافذة.

وهنا هو وثائق جلسة PHP: HTTP: //us2.php. صافي / دليل / EN / book.session.php

وربما يمكن استخدام session_write_close ()؟

وهناك تعليق على وثائق PHP لوظيفة session_destroy التي قد تكون مفيدة لك: <لأ href = "http://us2.php.net/manual/en/function.session-destroy.php#71889" يختلط = "نوفولو noreferrer"> http://us2.php.net/manual/en/function.session-destroy.php#71889

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top