حل برمجي سهب

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

واعود لصفحة الادمن اجد الصفحة تستقبلني ولا تطالبني بادخال الايميل وكلمة السر

ممكن تعطيني كود مثل الاول يقوم بتسجيل الخروج عندما اضغط على الزر

مثلا الملف الذي سيكون فيه كود تسجيل الخروج هو : logout.PHP

والزر سيكون     <a href="logout.php" class="delete-btn">تسجيل الخروج</a>

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

في logout.php تحتاج إلى إنشاء كود PHP يقوم بغلق الجلسة عند الضغط على زر "تسجيل الخروج"، يمكنك الإعتماد على هذا الكود و لكن ربما تحتاج إلى القيام ببعض التعديلات ليتماشى مع مشروعك:

<?php
session_start(); // بدء الجلسة
// تدمير جميع بيانات الجلسة
$_SESSION = array();
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}
// تدمير الجلسة
session_destroy();

// إعادة التوجيه إلى صفحة تسجيل الدخول أو الصفحة الرئيسية
header("Location: login.php");
exit;
?>

حيث يبدأ الجلسة باستخدام session_start()، ثم يمسح جميع بيانات الجلسة، و يغلقها ثم يعيد توجيه المستخدم إلى صفحة تسجيل الدخول أو أي صفحة أخرى تريد إعادة التوجيه إليها، ومن ثم يمكنك استخدام زر تسجيل الخروج في أي صفحة HTML أو PHP كالتالي:

<a href="logout.php" class="delete-btn">تسجيل الخروج</a>

الحل يعتمد علي طريقة تسجيلك للدخول .

فهل قمت بوضع ملف التحقق من أن المستخدم موجود في الجلسة في ملف صفحة الأدمن ؟

فإذا لم تقم بوضع الملف فلهذا لا يتم إعادة توجيهك لصفحة تسجيل الدخول حتي لو لم تقم بتسجيل الدخول بالفعل.

لذلك قم بإستيراد ملف التحقق من تسجيل الدخول في جميع الصفحات التي تريد حمايتها وجعلها مسموحة فقط للمستخدم . والملف من المفترض أن يحتوي على الكود التالي :

<?php 
session_start();
// تحقق من وجود متغيرات الجلسة التي تشير إلى تسجيل الدخول
if (!isset($_SESSION['loggedin'])) {
  header("Location: login.php");
  exit; 
}    

هنا قمنا بالتحقق من وجود المتغير loggedin فإذا لم يكن موجود في الجلسة فيجب إعادة التوجيه إلى ملف login.php ويجب علي هذا الملف أن يتم إستيراده في جميع الصفحات.

الآن لعمل تسجيل الخروج نقوم بتدمير الجلسه عن طريق الدالة session_destroy() هكذا :

<?php
session_start();
unset($_SESSION['loggedin']);
session_destroy(); 
header("Location: login.php");