كيف يمكنني اكتشاف عندما يكون المستخدم في وضع الخمول لفترة معينة وتدمير جلسته في PHP؟

StackOverflow https://stackoverflow.com/questions/2145365

  •  23-09-2019
  •  | 
  •  

سؤال

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

ما هي أفضل طريقة للتعامل مع هذا؟

أنا أركض على php و myadmin.

شكرًا

أفيناش

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

المحلول

في كل مرة تقوم فيها بتحميل صفحة ، قم بتخزين طابع زمني في متغير جلسة. عندما يذهب المستخدم إلى صفحة ، تحقق لمعرفة ما إذا كان $SESSION['lastActivity'] < time() - <your idle time>. إذا كان هذا صحيحًا ، فاحرص على إعادة التوجيه إلى صفحة "انتهت صلاحية جلستك" أو ما شابه. إذا لم يكن كذلك ، تابع تحميل الصفحة.

نصائح أخرى

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

لا يمكنك فقط استخدام وظائف الجلسة المدمجة في PHP لتعيين وقت انتهاء صلاحية الجلسة إلى 5 دقائق. وإعادة توجيه إذا لم تعد الجلسة موجودة؟

قم بإنشاء وظيفة JavaScript التي تحتوي على مهلة Minute التي تنبثق ويعيد التوجيه.

أيضًا على الخادم ، تأكد من انتهاء صلاحية جلستهم بحيث لا تتوفر في JavaScript ، ولا يمكنهم متابعة الإجراءات بعد مرور وقت الخمول.

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