سؤال

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

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

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

هل كانت مفيدة؟

المحلول

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

يتعين على معالج الجلسة تحديد الجلسة التي تنتمي إليها المستخدم.

الغالبية العظمى من مكتبات الدورة تفعل ذلك عن طريق وضع ملف تعريف الارتباط.

(ألا) تحديد متغير جلسة أخرى في صفيف الجلسة لإبقاء المستخدم الذي قام بتسجيل الدخول سيكون كافيا أو ما زلت بحاجة إلى تعيين ملف تعريف الارتباط؟

مجموعة معظم مكتبات الجلسة ملفات تعريف الارتباط الجلسة. وبعد هذه ملفات تعريف الارتباط دون وقت انتهاء الصلاحية المحدد. ينتهي عند إغلاق المتصفح ولا يكفي لتنفيذ ميزة "تذكرني" (من المتوقع أن يستمر عبر إعادة تشغيل المتصفح، لذلك يجب أن يكون لديك وقت انتهاء صريح).

نصائح أخرى

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

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

يحدث هذا تلقائيا.

السبب الوحيد لاستخدام الجلسة هو إذا كانت البيانات التي تريد الاحتفاظ بها أكبر من 4KB (قيود المتصفح)؛ أو إذا كان الوقت اللازم لسحب البيانات من الخادم الخاص بك أكبر من قراءة ذلك من تخزين الجلسة.

إذا كانت كمية البيانات التي تخزنها أقل من 4 كيلو بايت، فسوف أوصي بشدة بضبط ذلك في ملف تعريف الارتباط لتبدأ به. أعاني من تخزين أشياء مثل معرف المستخدم والاسم الأول للمستخدم واثنين من السمات الأخرى. ضع في اعتبارك أنه تافهة لتفقد قيمة ملفات تعريف الارتباط، لذلك يجب تشفير هذه المعلومات قبل الذهاب إلى العميل.

شيء آخر هو إذا كان وقت الاستعلام لسحب البيانات التي تحتاجها من المصدر الأصلي صغير، ثم اختارت القيام بذلك بدلا من وضعها في الجلسة. بهذه الطريقة تحصل عليه فقط عند الحاجة إليها بالفعل بدلا من تحميل صفحة واحدة.

شرح العلاقة بين ملف تعريف الارتباط والجلسة:

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

لذلك، تخزن ملفات تعريف الارتباط معرف الجلسة المطلوب لتحديد المستخدم الذي يستخدم الدورة. هذا هو أيضا كيفية اختطاف الجلسة، عندما يمكن للناس تغيير الجلسة تحديد ملف تعريف الارتباط لاستخدام معرف جلسة شخص آخر.

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

أود أيضا أن أعرف، إذا كان ببساطة تعيين متغير جلسة أخرى في صفيف الجلسة للحفاظ على المستخدم الذي سجل الدخول سيكون كافيا أو ما زلت بحاجة إلى تعيين ملف تعريف ارتباط؟

بمجرد إغلاق المستخدم المتصفح، قتل الجلسة ويتم حذف ملف تعريف الارتباط. لا أعتقد أن أي آلية تخطئ من استمرار قيمة الجلسة، ولسبب وجيه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top