Avatar ·

كيفية ضبط مدة جلسة PHP لتكون 30 دقيقة وإنهائها تلقائياً؟

مرحباً بالجميع! أنا مبتدئ في PHP وواجهت مشكلة في إدارة الجلسات. أحتاج إلى أن تنتهي جلسة المستخدم على موقعي تلقائياً بعد 30 دقيقة من عدم النشاط. قرأت الوثائق لكنني تشوشت في الإعدادات. إليك ما جربته: ```php // في بداية كل صفحة session_start(); // حاولت ضبط مدة الحياة عبر ini_set ini_set('session.gc_maxlifetime', 1800); ini_set('session.cookie_lifetime', 1800); ``` لكن هذا لا يعمل — تظل الجلسة نشطة حتى بعد ساعة. أتحقق من وقت آخر نشاط للمستخدم هكذا: ```php if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { session_destroy(); session_unset(); header('Location: login.php'); exit; } $_SESSION['LAST_ACTIVITY'] = time(); ``` لكن هذا يؤدي إلى طرد المستخدم حتى أثناء العمل النشط إذا لم يقم بتحديث الصفحة لفترة طويلة. كيف يمكن تنفيذ مهلة الجلسة بشكل صحيح بعد 30 دقيقة من عدم النشاط؟