البرمجة

تحسين أمان وأداء صفحات تسجيل الدخول وتسجيل الخروج في PHP

في هذا السياق، يظهر أنك تعمل على صفحة تسجيل الدخول (Login.php) وصفحة تسجيل الخروج (logout.php). لبدء العمل، يتم استخدام كود PHP لتأسيس جلسة (session) عند تسجيل الدخول، وكذلك لتدمير الجلسة عند تسجيل الخروج.

لإنشاء متغير الجلسة، تم استخدام الكود التالي:

php
session_start(); $msg = ""; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST["userid"]; if ($name == '') { $msg = "يجب إدخال جميع الحقول"; } else { $sql = "SELECT * FROM user WHERE userid = '$name' "; $query = mysql_query($sql); if ($query === false) { echo "تعذر تشغيل الاستعلام بنجاح ($sql) من قاعدة البيانات: " . mysql_error(); exit; } if (mysql_num_rows($query) > 0) { $_SESSION['userid'] = $name; header('Location: teams.php'); exit; } $msg = "اسم المستخدم غير مطابق"; } }

في هذا الكود، يتم استخدام session_start() لبدء الجلسة وتحديد متغير $_SESSION['userid'] عندما يتم تسجيل الدخول بنجاح.

أما بالنسبة لصفحة تسجيل الخروج (logout.php):

php
session_start(); if (session_destroy()) { header("Location: index.php"); } ?>

هنا يتم استخدام session_destroy() لتدمير الجلسة عند تسجيل الخروج ومن ثم إعادة توجيه المستخدم إلى صفحة البداية (index.php).

لمنع عملية العودة إلى الصفحات السابقة بعد تسجيل الخروج، يُفضل أن تقوم بتضمين متغيرات التحكم بالجلسة في صفحاتك بشكل صحيح. على سبيل المثال، في صفحة teams.php، قد يكون الكود التالي ذا صلة:

php
session_start(); if (!isset($_SESSION['userid'])) { header("Location: index.php"); exit; }

هذا الكود يتحقق مما إذا كان متغير الجلسة $_SESSION['userid'] قد تم تعيينه، وإذا لم يكن كذلك، يقوم بإعادة توجيه المستخدم إلى صفحة البداية.

المزيد من المعلومات

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

استخدام MySQL Deprecated:

في الشيفرة الخاصة بك، استخدمت دالة mysql_query()، والتي تشير إلى أنك تستخدم إصدارًا قديمًا من MySQL. يُفضل استخدام استعلامات مستندة إلى MySQLi أو PDO لضمان أمان التطبيق ودعم الإصدارات الحديثة من MySQL.

التحقق من صحة المدخلات:

تحقق من البيانات المدخلة من قبل المستخدم دائمًا لتفادي ثغرات الأمان. يفضل استخدام استعلامات معالجة البيانات أو تحديد نوع البيانات لتجنب هجمات حقن الشيفرة.

تحسين رسائل الخطأ:

قد تحسن من تجربة المستخدم عن طريق تحسين رسائل الخطأ. بدلاً من “Username do not match” يمكنك توفير رسالة توضح المشكلة بشكل أفضل، مثل “اسم المستخدم غير متطابق” أو “الرجاء التحقق من اسم المستخدم”.

التحقق من الجلسة على الصفحات الأخرى:

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

php
session_start(); session_destroy(); header("Location: index.php"); exit; ?>

الحفاظ على الأمان:

تأكد من أن الاتصال بقاعدة البيانات مشفر وآمن، وتجنب استخدام دوال قديمة أو غير آمنة.

إضافة تأكيد لتسجيل الخروج:

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

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

زر الذهاب إلى الأعلى