Avatar ·

كيفية التحقق مما إذا كانت جلسة PHP قد بدأت بالفعل وتجنب خطأ «headers already sent»

مرحباً بالجميع! أنا مبتدئ في PHP وأقوم ببناء موقع صغير مع نظام تسجيل دخول. لدي عدة سكريبتات تعمل مع الجلسات. في ملف واحد، أبدأ الجلسة باستخدام session_start()، ثم أضم ملفات أخرى عبر include. المشكلة هي أنه إذا قمت باستدعاء session_start() مرتين عن طريق الخطأ في ملفات مختلفة، فإن PHP يظهر خطأ: Warning: session_start(): Cannot send session cookie - headers already sent أفهم أن هذا الخطأ يحدث لأن headers قد تم إرسالها بالفعل، ولا يمكن استدعاء session_start() مرة أخرى. لكن كيف يمكنني التحقق مما إذا كانت الجلسة قد بدأت بالفعل لتجنب استدعاء session_start() مرة أخرى؟ جربت استخدام @ في البداية لكتم الخطأ، لكن هذا ممارسة سيئة كما فهمت. إليك مثال على الكود الخاص بي: // config.php session_start(); $_SESSION['user'] = 'admin'; // page.php include 'config.php'; session_start(); // هنا يظهر الخطأ إذا كان config.php قد استدعى session_start() بالفعل أحتاج إلى شيء مثل: if (session_not_started)