التحكم في نطاقات ملفات تعريف الارتباط والمجالات الفرعية في PHP
عند إنشاء موقع متعدد النطاقات الفرعية، يصبح من الضروري التحكم في النطاقات الخاصة بملفات تعريف الارتباط للجلسة ضمان الإدارة المناسبة للجلسة لكل نطاق فرعي. ومع ذلك، يبدو أن هناك تناقضًا في التعامل مع ملفات تعريف الارتباط الخاصة بـ PHP عند تعيين المجال يدويًا.
افتراضيًا، تقوم session_start() بتعيين ملف تعريف ارتباط الجلسة مع النطاق الفرعي الحالي. ومع ذلك، فإن محاولة تعيين مجال ملف تعريف الارتباط باستخدام ini_set() أو session_set_cookie_params() ينتج عنها ملف تعريف ارتباط بمجال يبدأ بنقطة (.subdomain.example.net). يقوم هذا السلوك تلقائيًا بربط ملف تعريف الارتباط بجميع النطاقات الفرعية.
تنشأ المشكلة لأن وظائف ملفات تعريف الارتباط الخاصة بـ PHP تسبق المجال المقدم تلقائيًا بنقطة. لتجنب ذلك، يمكن استخدام الدالة header() بدلاً من ذلك. وهذا يسمح بالتحكم الصريح في مجال ملفات تعريف الارتباط. على سبيل المثال:
header("Set-Cookie: cookiename=cookievalue; expires=Tue, 06-Jan-2009 23:39:49 GMT; path=/; domain=subdomain.example.net");
باستخدام header()، يمكننا تعيين مجال ملف تعريف الارتباط دون البادئة التلقائية، وبالتالي تقييد ملف تعريف الارتباط على المجال الفرعي المحدد. توفر هذه الطريقة تحكمًا دقيقًا في نطاقات ملفات تعريف الارتباط والنطاقات الفرعية في تطبيقات PHP متعددة النطاقات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3