هل من الآفضل تخزين المعلومات ضمن الجلسات ام ملفات تعريف الارتباط؟؟
وماهي الاوامر لتكوين الجلسات او حذفها؟
على الرغم من أنه يمكنك تخزين البيانات باستخدام ملفات تعريف الارتباط ، إلا أن هناك بعض المشكلات الأمنية. نظرًا لأنه يتم تخزين ملفات تعريف الارتباط على كمبيوتر المستخدم ، فمن الممكن للمهاجم تعديل محتوى ملف تعريف الارتباط بسهولة لإدراج بيانات يحتمل أن تكون ضارة في تطبيقك والتي قد تؤدي إلى تعطل تطبيقك.
أيضًا في كل مرة يطلب فيها المستعرض عنوان URL إلى الخادم ، يتم إرسال جميع بيانات ملفات تعريف الارتباط الخاصة بموقع الويب تلقائيًا إلى الخادم ضمن الطلب. هذا يعني أنه إذا قمت بتخزين 5 ملفات تعريف ارتباط على نظام المستخدم ، كل منها يحتوي على 4 كيلوبايت في الحجم ، فإن المتصفح يحتاج إلى تحميل 20 كيلوبايت من البيانات في كل مرة يشاهد فيها المستخدم صفحة ، مما قد يؤثر على أداء موقعك.
يمكنك حل هاتين المشكلتين باستخدام جلسة PHP. تخزن جلسة PHP البيانات على الخادم بدلاً من كمبيوتر المستخدم. في بيئة تستند إلى الجلسة ، يتم تحديد كل مستخدم من خلال رقم فريد يسمى معرف الجلسة أو SID. يتم استخدام معرّف الجلسة الفريد هذا لربط كل مستخدم بمعلوماته الخاصة على الخادم مثل رسائل البريد الإلكتروني والمنشورات وما إلى ذلك.
أما بالنسبة للأوامر:
لإنشاء جلسة جديدة:
<?php
// Starting session
session_start();
?>
لتخزين معلومات ضمن الجلسة، مثل بيانات تسجيل الدخول:
<?php
// Starting session
session_start();
// Storing session data
$_SESSION["firstname"] = "Peter";
$_SESSION["lastname"] = "Parker";
?>
ثم يمكنك الوصول لهذه المعلومات المخزنة عن طريق:
// Accessing session data
echo 'Hi, ' . $_SESSION["firstname"] . ' ' . $_SESSION["lastname"];
أما تدمير الجلسة فيتم عن طريق الأمر التالي بعد اختبار وجودها لتجنب الأخطاء:
// Removing session data
if(isset($_SESSION["lastname"])){
unset($_SESSION["lastname"]);
}
ملاحظة:
تحتوي كل جلسة PHP على قيمة مهلة - مدة ، تُقاس بالثواني - والتي تحدد المدة التي يجب أن تظل الجلسة فيها حية في غياب أي نشاط للمستخدم. يمكنك ضبط مدة المهلة هذه عن طريق تغيير قيمة متغير session.gc_maxlifetime في ملف تكوين PHP (php.ini).
التعليقات