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

بحاول اعمل شغلة بلوحة التحكم وهي اذا صار وقت مثلا ربع ساعة يعمل تسجيل خروج تلقائي

طبعا اذا المستخدم ما عمل شي وبعد ربع ساعة عمل تحديث او انتقل لصفحة

بتظهر اله انه تم تسجيل خروجك لانتهاء الجلسة

انا حاولت لكن لم يفلح الامر :)

$max_time = 10;
$time = $_SESSION['time'];
$limitsec=$time-$max_time;
$time;
if($time > $limitsec)
header("location:logout.php");
تاريخ البداية: 12 / يناير / 2012 الساعة 0:6 اخر نشاط: 2 / أغسطس / 2022 الساعة 1:50 session php

لو انك تريد عمل هذا فى حالة انه ترك المتصفح مفتوح .. لابد من استخدام الجافا سكريبت
12 / يناير / 2012 الساعة 0:7

كيف يمكنني ذلك عن طريق الجافا سكربت
12 / يناير / 2012 الساعة 0:12

3 إجابات
اشرح بوضوح اكثر مافهمت

بواسطة: 7814032
منذ: 2 / أغسطس / 2022 الساعة 1:50

هذه طريقة نظرية لم اجربها اعتمادا على فكرة ملهم ، هذه الجافا سكربت باستخدام الج ىكويرى
$(document).ready(function(){
    setTimeout(function(){
        $.post( 'session.php', { 'check' : 1 },
          function( data ) {
            if(data.logout){
                window.location = 'logout.php'
            }
        },'json');
    }, 900000);
});
هذا الكود يعمل على الاتصال بصفحة session.php كل 10 دقايق من الثبات على الصفحة وهذا كود session.php
<?php

    if($_POST['check']){
        if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
            exit( json_encode(array( 'logout' => true)) );
        }   
    }

?>
يجب عليك ربط هذه الصفحة بالصفحة التى بدات بها الجلسة اى الصفحة المجود بها session_start(); ويفضل ان تكون فى الكونفج .. بعد ذلك مع نفس الصفحة ال بتبدا بيها الجلسة هتستخدم الكود ده
session_start();

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    // تدمير الجلسة .. ستضع هنا نفس الكود الذى تستخدمه لتسجيل الخروج
    session_destroy(); 
    session_unset();
}
$_SESSION['LAST_ACTIVITY'] = time();
كدة كل مهتعمل رفرش هيسجل ان اخر ريفرش كانت من 30 دقيقة .. ولو ثبت على صفحة 10 دقايق هيتصل يشوف ياترى اخر اتصال من 30 دقيقة ولا لا .. لو اخر هيحولك لصفحة logout.php
ملحوظة : اى خطا اعزرنى عندى امتحان فى الكلية بكرة الصبح

بواسطة: MacOS
منذ: 12 / يناير / 2012 الساعة 1:6

شكرا كل الشكر لكم
للامانة موقع رآئع بكل ما تحمل الكلمة من معنى ويشرفني جدا ان اكون بينكم
شكرا لسرعة الرد وبارك الله فيكم
وفقكم الله :)
12 / يناير / 2012 الساعة 1:15

بالنسبة لانتهاء الجلسات ، يمكنك استعمال هذه الطريقة
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    // اخر طلب كان منذ اكثر من 30 دقيقة
    session_destroy();   // تدمير الجلسات
    session_unset();     // الغاء $_SESSION
}
$_SESSION['LAST_ACTIVITY'] = time(); // تحديث وقت اخر نشاط
ولكن هذا الكود لن يعمل الا عند عمل ريفرش .. لعمله دون ريفرش لابد من استعمال الاجاكس

بواسطة: molhm
منذ: 12 / يناير / 2012 الساعة 0:12

اخي molhm كود رائع صراحة
لكن اواجه مشكلتين
لو تقدر توفر لي كود الاجاكس يكون ممتاز
وبخصوص الكود عيبه فقط انه لازم اعمل ريفرش مرتين عشان يعمل ديستروي للسيشن
وشكرا
12 / يناير / 2012 الساعة 0:32

أنشر اجابتك

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