في ال localhost عندما اقوم بالدخول على احد الحسابات , ثم اقوم باغلاق المتصفح والعودة مرة اخرى للموقع,
يتم تلقائياً تجديد ال session ويتم تسجيل الخروج.
هل هنالك حل مناسب وأمن؟
ستقوم بحفظ بيانات تسجيل الدخول في الـ cookies لفترة من الزمن يوم أو شهر مثلاً ولكن كلمة المرور بصورة مشفرة.
من جهة الخادم ستقوم بالتحقق من القيم وتسجيل الدخول مجدداً.
من جهة الخادم ستقوم بالتحقق من القيم وتسجيل الدخول مجدداً.
ساقوم بكتابة كود يتحقق من الكوكيز الموجودة في المتصفح وقواعد البيانات (sessions)
واذا كانت صحيحة, سيتم تلقائياً تسجيل الدخول اليس كذلك؟؟
الطريقة الأسهل هو التحكم في مدة الجلسة من جهة الخادم والعميل وتحويل الـ id للجسلة المخزن في ال cookies من نوع الجلسة التي تنتهي بمجرد إغلاق المتصفح إلى متغير يحذف بتوقيت معين بحيث يظل مُعرف الجلسة مخزن في المتصفح ولا يتم حذفه مع إغلاق المتصفح سيكون الكود على النحو التالي:
<?php
if(!isset($_COOKIE['PHPSESSID'])) {
$endtime = 60*60*24*30;
ini_set('session.gc_maxlifetime', $endtime);
session_set_cookie_params($endtime);
session_start();
setcookie('PHPSESSID', session_id(), time() + $endtime);
}else{
if(!isset($_SESSION)){
session_start();
}
}
?>
هذا الكود تضعه مرة واحدة فقط في ملف الـ header الخاص بالموقع والذي يتم استدعائه دوماً في كل طلب للخادم.
التعليقات