كيف يمكنني اكتشاف عندما يكون المستخدم في وضع الخمول لفترة معينة وتدمير جلسته في PHP؟
-
23-09-2019 - |
سؤال
أرغب في تدمير موقع الويب الخاص بي على موقع PHP على جلسة المستخدمين إذا كانت خاملة لمدة 5 دقائق. إذا حدث هذا ، أود أن أقدم للمستخدم رسالة توضح سبب تسجيلها وإعادة توجيهها إلى صفحة تسجيل الدخول.
ما هي أفضل طريقة للتعامل مع هذا؟
أنا أركض على php و myadmin.
شكرًا
أفيناش
المحلول
في كل مرة تقوم فيها بتحميل صفحة ، قم بتخزين طابع زمني في متغير جلسة. عندما يذهب المستخدم إلى صفحة ، تحقق لمعرفة ما إذا كان $SESSION['lastActivity'] < time() - <your idle time>
. إذا كان هذا صحيحًا ، فاحرص على إعادة التوجيه إلى صفحة "انتهت صلاحية جلستك" أو ما شابه. إذا لم يكن كذلك ، تابع تحميل الصفحة.
نصائح أخرى
أفترض أنك تعني وقت "الخمول". ليست هناك حاجة لحساب ذلك ، ولكن يجب عليك تخزين وصول آخر (مصادق عليه) الذي تم إجراؤه بواسطة هذا المستخدم وإعادة ضبط العداد. عادة ، يجب أن يصدر المرء ملف تعريف ارتباط مصادقة مع طابع زمني معين. عند مصادقة ملف تعريف الارتباط ، يمكنك مقارنة الوقت الحالي مع الطابع الزمني. إذا كان هذا الاختلاف أكبر من بعض العتبة ، على سبيل المثال 5 دقائق ، فأنت تقدم صفحة خطأ. لتحسين تجربة المستخدم ، قد ترغب أيضًا في عرض مؤقت للمستخدم حتى لا توجد مفاجأة سيئة.
لا يمكنك فقط استخدام وظائف الجلسة المدمجة في PHP لتعيين وقت انتهاء صلاحية الجلسة إلى 5 دقائق. وإعادة توجيه إذا لم تعد الجلسة موجودة؟
قم بإنشاء وظيفة JavaScript التي تحتوي على مهلة Minute التي تنبثق ويعيد التوجيه.
أيضًا على الخادم ، تأكد من انتهاء صلاحية جلستهم بحيث لا تتوفر في JavaScript ، ولا يمكنهم متابعة الإجراءات بعد مرور وقت الخمول.