مشكله فى التعامل مع Sessions
السلام عليكم ورحمة الله وبركاته
تظهر لى هذه الرساله عند محاولة بدء جلسه فما حلها Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\basic-cms\admincp\login.php:1) in C:\AppServ\www\basic-cms\admincp\login.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\basic-cms\admincp\login.php:1) in C:\AppServ\www\basic-cms\admincp\login.php on line 2 Welcome root ! You Will Be Redirected To Admin Control Pannel In 5 Sec . وكنت أود الاستفسار أيضا عن عدة أشياء هى : 1- كيفية توجيه المستخدم الذى يحاول دخول لوحة التحكم إلى صفحة login.php أولا (أنتم تعرفون طبعا أنه إذا كان هناك صفحه باسم Index فإن المتصفح يتجه لها مباشرة وهذا الخطأ لا أريده وإنما أريد المستخدم أن يدخل من خلال الصفحه login ؟ 2- كيفية منع مستخدم من التوجه إلى أى صفحه من صفحات لوحة التحكم مباشرة من خلال كتابة العنوان فى المتصفح إلا بعد عملية تسجيل الدخول بصوره طبيعيه من login.php ؟
3 إجابات
اولا يجب ان تبدأ صفحتك ب
<?php session_start();هذا يكون في اول الصفحة ولا يسبقها شي حتى ولو فراغ (مسافة بيضاء) راجع صفتحك . بالنسبة لسؤال الثاني وهو انك تمنع المستخدم من الدخول للصفحة من خلال كتابة العنوان الا بعد التسجيل استخدم باول الصفحة هذا الشرط if(session_is_registered('user_name'))على افتراض انك قد عرفت مسبقا المتغير user_nameانه متغير من نوع سيشن فبالتالي يتم الفحص قبل الدخول الى كود الصفحة ان هذا المتغير مسجل او لا فاذا مسجل من صفحة الدخول فيتم تنفيذ بقية الصفحة واذا لم فيتم توجيهه بشكل اجباري لصفحة الlogin بستخدام الكود else header("location: login.php"); وهذا اجابة ع سؤالك الاول (كيفية توجيه المستخدم الذى يحاول دخول لوحة التحكم إلى صفحة login.php أولا) بواسطة: Salam.Ali تعديل: MacOS 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
مممكن تحتاج الى فتح الملف بى برنامج notepad++ وتختار من قائمه Encoding
Convert to utf-8 without Bom والمشكله هتتحل ان شاء الله بواسطة: elwan.vip 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
الخطا الاول بسبب ان هناك شىء ارسل قبل بدأ الجلسة .. ربما تكون مسافة .. تسبب هذه المشكلة كلها ... وهذا معناه ان لابد من وضع session_start(); فى اول سطر فى الاسكربت كله .. وابحث عن مسافات بيضاء قبل علامة بداية الـphp اى هاكذا
[مسافة هنا]<?php session_start(); ?>هذه لن تعمل مع انها صحيحة ، بسبب وجود مسافة قبل علامة البى اتش بى بواسطة: molhm تعديل: molhm 4 من 4 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا |