رؤوس المعلومات القبيحة. ما هي رؤوس المتشعب؟

رؤوس المعلومات القبيحة. ما هي رؤوس المتشعب؟

سنلقي نظرة في هذه المقالة على الأسباب الرئيسية والحلول لخطأ "من المستحيل تغيير الرؤوس لأنه تم إرسالها بالفعل" ("لا يمكن التعديل معلومات الرأس- الرؤوس التي تم إرسالها بالفعل").

ماذا يعني هذا الخطا؟

لفهم أسباب الخطأ، عليك أولاً أن تفهم ما هي هذه "الرؤوس".

دعونا لا نتعمق في النظرية. دعنا نقول فقط أنه قبل أن يفتح أي مستخدم صفحة ويب، يتم إرسال نفس "الترويسات" إليه، والتي تحتوي على التشفير ولغة الموقع وبيانات الخادم ومعلومات الخدمة الأخرى. ومن الجدير أيضًا أن نضيف بشكل منفصل أن ملفات تعريف الارتباط والجلسة يتم إرسالها أيضًا في العناوين.

ما الأوامر التي تسبب هذا الخطأ؟

خطأ "لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة"يمكنه استدعاء أوامر PHP مثل header وsetcookie وغيرها المتعلقة بتشغيل ملفات تعريف الارتباط أو الجلسات.

أسباب وحلول الخطأ.

أكثر خطأ عاميحدث بسبب نقص الخبرة لقد اكتشفنا بالفعل أنه يتم إرسال الرؤوس قبل أن يبدأ تحميل الصفحة نفسها.

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

فيما يلي مثال للتعليمات البرمجية التي قد تؤدي إلى هذا الخطأ:

إليك الخيار الصحيح:

وهذا يعني أولاً أنه لا يمكنك عرض أي شيء قبل إرسال الرؤوس!

ليس الأمر واضحًا دائمًا، ولكن هناك خطأ مع اختلاف بسيط. يحدث هذا عندما يبدأ مستند PHP الخاص بك بمسافات أو أسطر فارغة، مما يعني أن هذه الأسطر معروضة في المتصفح.

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

فيما يلي مثال على تعيين الرؤوس بشكل غير صحيح:

وهذا هو، ثانيا، من قبل

يجب أن تكون حذرًا بشكل خاص إذا كنت تستخدم أمر التضمين، فهو يجمع بشكل أساسي جميع الملفات وينشئ ملفًا واحدًا، وإذا قمت أولاً بتضمين رأس الموقع (شريط التمرير، القائمة، وما إلى ذلك) ثم حاولت إرسال الرؤوس في الملف الرئيسي ، فأنت بالطبع سوف تحصل على هذا الخطأ.

فيما يلي مثال على هذا الرمز غير الصحيح:

تم نشره بواسطة في الخميس، 05/04/2017 - 12:55

وصف مشكلة معينة

بعد الضغط على الزر يظهر خطأ:

تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة (بدأ الإخراج في C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php:10) في C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php في السطر 12

الكود مشابه لذلك الوارد في هذا الموضوع:

الويب التجريبي

حدد البرنامج النصي للتنزيل

البرنامج النصي للمعالج:

متى يحدث هذا

نوع الخطأ (التحذير):

تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل

يحدث إذا كنت قد قمت بالفعل بشيء يتطلب تعيين رؤوس المتصفح، وتريد الآن إعادة كتابتها برؤوس جديدة. على سبيل المثال، إذا كنت قد عرضت نصًا بالفعل، فسيقوم php بتعيين الرؤوس (على وجه الخصوص header موقع-- والذي يوضح ما إذا كنت تريد البقاء على الصفحة المطلوبة أو ما إذا كنت بحاجة إلى الانتقال إلى صفحة أخرى والحصول على رد على الطلب هناك) لإظهار كيفية التصرف لمتصفح العميل (في استجابته).

جذر المشكلة

على الأرجح، المشكلة في حالتك هي أنك تقدم محتوى بالفعل (علامات HTML الممزوجة في الملف مع البرنامج النصي) قبلالأوامر:

رأس الصدى($إعادة التوجيه);

تذكر أنه لا يمكن استدعاء وظيفة الرأس () إلا إذا كان العميل لم يتم نقل أي بيانات حتى الآن. أي أنه يجب أن يأتي أولاً في المخرجات، ويجب ألا تكون هناك علامات HTML أو أسطر فارغة أو ما إلى ذلك قبل استدعائه. في كثير من الأحيان يحدث خطأ عند قراءة الكود وظائف الملف، مثل التضمين أو الطلب، يحتوي هذا الكود على مسافات أو أسطر فارغة تتم طباعتها قبل استدعاء header(). يمكن أن تنشأ نفس المشاكل عند استخدام ملف PHP/HTML واحد.

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

رأس($إعادة توجيه);

رأس الصدى($إعادة التوجيه);

تجربة

نظرًا لأن echo() يكتب عمومًا إلى هيئة استجابة http، وليس في الرؤوس، ويعود الرأس فارغًا (أي لا يُرجع قيمًا)، كما ذكرنا أعلاه، فلا فائدة من استخدام echo()، ولكن
- ومع ذلك أقترح إجراء تجربة:

  1. إزالة أتش تي أم أل
  2. لا تقم بإزالة الصدى

نظرًا لأن header () يتم استدعاؤه بشكل أساسي قبل echo () (نظرًا لأن header () هو وسيطة لـ echo ())، مما يعني العودة - في نفس الوقت، دعونا نتحقق مما إذا كانت الوظيفة ترجع فارغة - هل سيتم تفسيرها على أنها خط فارغأو (وهو الأصح) لن يبدأ الصدى في العمل حتى تتم عملية إعادة التوجيه بالفعل.

دعونا نوضح السبب مرة أخرى

أولئك. قبل استدعاء الرأس () يجب ألا يتم عرض أي محتوى(ما هو مكتوب في وصف الوظيفة: http://php.net/manual/ru/function.header...)

  • 1) ولا مع الصدى
  • 2) ليس بمجرد تفريغ نص HTML في المتصفح.

في حالتنا، يبدو أن الصدى لا يؤثر على أي شيء، لكن HTML الموجود في المعالج يؤثر بالفعل.

تم حل المشكلة

بناء على نصيحتك تمت إزالتها علامات HTML. الآن تتم عملية إعادة التوجيه بشكل صحيح، ويبدو البرنامج النصي للمعالج كما يلي:

وظيفة الصدى لا تؤثر حقا على العملية، أي. يمكنك أيضًا ترك الأمر كما في S. Holzner:

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

  • تسجيل الدخول لإضافة التعليقات

ولكن يمكنك انجاحه

ولكن يمكنك أيضًا تشغيل المعالج السابق

إعادة توجيه المستخدم

إذا قمت بتعيين الخيار في ملف php.ini

Output_buffering = 4096

  • تسجيل الدخول لإضافة التعليقات

إعادة إرسال الرؤوس محظور، بروتوكول HTTP لا يعمل بهذه الطريقة! ولكن ماذا يجب أن نفعل؟ إذا كنت بحاجة أيضًا، بعد العرض على الصفحة، إلى بدء جلسة وتعيين ملف تعريف ارتباط؟ - دعونا نتذكر التخزين المؤقت للإخراج.

أي أنه عند تعيين حجم مخزن مؤقت غير صفري، يظل من الممكن التعامل مع الرؤوس حتى يمتلئ. إذا كان حجم المخزن المؤقت صفرًا، فسيتم إرجاع المحتوى على الفور بعد إخراج المحتوى اخراج بواسطةتمرير رؤوس استجابة HTTP إلى العميل.

واتضح أننا نريد تغيير الرؤوس التي "نقلت" بالفعل عبر الشبكة إلى العميل (مما يعني أنه لم يعد من الممكن تصحيحها - ولا سيما الرأس موقع، مما يشير إلى ما إذا كنا سنبقى على الصفحة المطلوبة أو نطلب صفحة أخرى - استجابة البرنامج النصي "معيد التوجيه" (بالنسبة لنا هذا معالج نموذج) تشير فقط إلى أننا بحاجة إلى طلب صفحة أخرى)، وهو ما يحذرنا منه php .

لكن:بالطبع، من المستحيل حل المشكلة بهذه الطريقة (ليس بشكل صحيح للغاية، أكثر دقة).

_____________
كلية الرياضيات بجامعة VSU والكلاسيكيات الأخرى =)

  • تسجيل الدخول لإضافة التعليقات

إنه لأمر مدهش كيف يمكن لخطأ صغير أن يجعل موقع WordPress الخاص بك غير صالح للعمل تمامًا. نحن نتحدث بالطبع عن الخطأ التحذيري الشهير في WordPress تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة pluggable.php (لا يمكن تغيير معلومات الرأس). إذا كنت ممن يواجهون هذا الخطأ، فقد وصلت إلى المكان الصحيح. وفي هذا سنناقش سبب ظهور هذا الخطأ في المقام الأول وننظر إلى الحلول التي ستحل المشكلة نهائيًا.

ماذا تحتاج

قبل البدء، تأكد من أن لديك ما يلي:

  • الوصول إلى لوحة تحكم الاستضافة الخاصة بك أو الوصول إلى FTP

كيف يحدث خطأ لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل عن طريق الخطأ؟

دعونا نلقي نظرة على مثال لهذا الخطأ لفهم الأسباب بشكل أفضل. يظهر الخطأ عادة بهذا الشكل:

تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة (بدأ الإخراج في /public_html/wp-content/plugins/my-plugin/my-function.php:#) في /public_html/wp-includes/pluggable.php على السطر #

كما ترون، يشير الخطأ إلى ملفين. الملف الأول (في حالتنا: my-function.phpنشر في /public_html//wp-content/plugins/my-plugin/) على رأس المشتبه بهم. هذا هو الكود المخصص لدينا والذي تم تصميمه لتعديل الوظائف الأساسية التي يوفرها WordPress. الوظيفة الأساسية موجودة في الملف قابل للتوصيل.php(ملف WordPress الأساسي، لم يتغير لأي ملف تركيبات ووردبريس). بمعنى آخر، المشكلة تكمن في الملف الأول، مما يمنع الملف الثاني من التنفيذ بشكل صحيح.

السبب الرئيسي للخطأ غير ضروري الفراغات في الملف الأول. وهي عبارة عن مسافات في أعلى الملف أو أسفله، أو مسافات غير ضرورية في أي مكان في الملف، أو حتى مسافات في علامات PHP . بالمناسبة، نظرًا لأن المبرمجين يمكنهم (وعادة ما يفعلون ذلك) إدخال مسافات إضافية في التعليمات البرمجية الخاصة بهم عن طريق الخطأ، فإن هذا الخطأ يحدث في كثير من الأحيان أكثر مما تتوقع. يشير السطر # الموجود في رسالة الخطأ إلى موقع المشكلة - وهذا سيساعد على حل المشكلة بشكل أسرع وبدون ضجة.

لا يمكن لإصلاح الخطأ تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل

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

الخيار 1 - تحرير الملف الخاطئ

الحل الأول للخطأ تحذير: لا يمكن تعديل معلومات الرأس- التصحيح اليدوي للملف الذي به خطأ. لديك بالفعل في المخزون معلومات ضرورية، للعثور على المشكلة في رسالة الخطأ نفسها (تذكر أن هذا هو الملف الأول في الرسالة). كل ما عليك فعله هو فتح هذا الملف عبر FTP باستخدام عميل مثل FileZilla أو من خلال مدير الملفات.

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

تأكد من كتابة علامتي البداية والنهاية PHP بشكل صحيح. يجب ألا يكون هناك مسافة قبل العلامة أو بعدها ، وكذلك العلامة ?> . أيضًا، الخط الأخيريجب ألا ينتهي الكود بمسافة أو فاصل أسطر إضافي.

في لقطة الشاشة أدناه يمكنك رؤية الملف wp-config.php، الذي يحتوي على مسافات قبل علامة PHP الأولى.


فكرة: في كثير محرري النصوصيمكنك إزالة المسافات غير الضرورية تلقائيًا. على سبيل المثال، لحذف مساحات اضافيةفي محرر Atom، حدد كل التعليمات البرمجية وانتقل إلى P ackages -> مسافة بيضاء -> إزالة مسافة بيضاء زائدة.

الخيار 2 – استبدال الملف الخاطئ

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

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

ختاماً

سواء قمت بلصق جزء من التعليمات البرمجية في ملف، أو إضافة مكون إضافي/موضوع جديد، أو كتابة التعليمات البرمجية يدويًا، فهناك خطر ظهور مسافات إضافية في الملف. يمكن أن تتحول هذه المساحات البريئة على ما يبدو إلى خطأ في WordPress تحذير: لا يمكن تعديل معلومات الرأس — الرؤوس التي تم إرسالها بالفعل.

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

مؤلف

إيلينا لديها محترف التعليم التقنيفي المنطقة تقنيات المعلوماتوالخبرة في البرمجة بلغات مختلفة لمنصات وأنظمة مختلفة. لقد كرست أكثر من 10 سنوات لصناعة الويب، حيث عملت مع أنظمة إدارة المحتوى المختلفة، مثل Drupal وJoomla وMagento، وبالطبع نظام إدارة المحتوى الأكثر شيوعًا هذه الأيام - WordPress. يتم دائمًا التحقق من دقة مقالاتها من الناحية الفنية، سواء كانت مراجعة لـ WordPress أو تعليمات لإعداد خادم VPS الخاص بك.

غالبًا ما تواجه المبرمجين الذين يبدأون في استخدام PHP رسالة الخطأ هذه. سيساعدك فهم سبب حدوث هذا الخطأ في إيجاد حل.

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

يُلاحظ هذا الخطأ الشائع في PHP عندما يرتكب المبرمج أخطاء في معالجة أو إنشاء الرؤوس. هنا مثال:

تحذير: لا يمكن تعديل معلومات الرأس - الرؤوس التي تم إرسالها بالفعل بواسطة (بدأ الإخراج في /home/usr1/public_html/sent.php:42) في /home/usr1/public_html/includes/theme-header.php على السطر 12

عادةً، لا داعي للقلق بشأن الرأس، حيث يتم إنشاؤه تلقائيًا ويحتوي على معلومات حول الصفحة والخادم وملفات تعريف الارتباط. تعتبر المعلومات الموجودة في الرأس مهمة، ولكنها عادةً ما تكون غير مرئية للمستخدم. وهنا بعض الأمثلة:

التاريخ: الإثنين، 10 يوليو 2006 الساعة 18:51:59 بتوقيت جرينتش الخادم: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.7g ترميز المحتوى: gzip نوع المحتوى: نص/html

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

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

  1. ابحث عن عبارة header() التي تسبب المشكلة. يجب أن يكون الخطأ في هذا السطر أو قبله.
  2. ابحث عن أي تعليمات قد توجه الإخراج إلى المستخدم قبل بيان الرأس هذا. إذا وجدت واحدًا أو أكثر، قم بتغيير الرمز لتحريك تعليمات الرأس قبلهم. يمكن أن تؤدي العبارات الشرطية المعقدة إلى تعقيد المشكلة، ولكنها يمكن أن تساعد أيضًا في حل المشكلة. وبدلاً من ذلك، يمكنك استخدام تعبير شرطي في الجزء العلوي من برنامج PHP النصي الذي يحدد قيمة الرأس في أقرب وقت ممكن، ويضعها هناك.
  3. تأكد من عدم وجود مسافات خارج علامتي البداية والنهاية PHP. بينما السطر الفارغ قبل علامة البداية
  4. إذا قمت بحفظ ملفك بترميز UTF-8، فتأكد من حفظ الملف بدون توقيع (بدون قائمة مكونات الصنف). التوقيع هو بايت يضاف في بداية الملف، وإذا تم حفظ البرنامج النصي PHP بهذا التنسيق، فسيتم اعتبار هذا البايت جزءًا من إخراج نص الصفحة، وهو ما لا ينبغي السماح به لتجنب المشكلة التي نواجهها يعتبر.

يأتي الناس إلي باستمرار بهذا الخطأ ويسألون: " أين الخطأ؟". طوال الفترة الزمنية تلقيت حوالي بضع رسائل من هذا القبيل 500 ، ليس أقل. حان الوقت للانتهاء من الخطأ "". وفي هذا المقال سأتحدث عن أسباب هذا الخطأ، وكذلك كيفية حله.

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

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

هذه الوظيفة، على سبيل المثال، يتم استخدامها باستمرار عندما. يتم أيضًا استخدام هذه الوظيفة بانتظام لـ .

كما يتم تعديل العناوين عند الإرسال بسكويتوفي بداية الجلسة (function جلسة_بدء ()).

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

إليك الرمز الذي يحتوي على الخطأ "":



?>

بالطبع، مثل هذا الهراء بي أتش بيلا يغفر. وكان ينبغي كتابته هكذا:

session_start(); // لنبدأ الجلسة
?>

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

مثال آخر للكود الذي به خطأ:

صدى "مرحبا!"؛ // اطبع شيئًا ما
session_start(); // لنبدأ الجلسة
?>

نفس الشيء، لسبب ما، يتم عرض الجسم (أو جزء منه) أولاً، ثم تذكروا أنهم بحاجة أيضًا إلى تعديل الرؤوس.

ما هي الطريقة الصحيحة لإعادة الكتابة هذا الرمز، فكر بنفسك.

مثال آخر:




مخرج؛
?>

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

المشكلة نفسها والطريقة الصحيحة لكتابتها هي:

خطأ $ = صحيح؛ // هل كانت هناك أية أخطاء؟
إذا كان $error) يردد "حدث خطأ"؛
else header("الموقع: ".$_SERVER["HTTP_REFERER"]); // إعادة التوجيه مرة أخرى
مخرج؛
?>

هناك أيضًا أخطاء دقيقة:

header("الموقع: ".$_SERVER["HTTP_REFERER"]); // إعادة التوجيه مرة أخرى
مخرج؛
?>

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

هناك أيضًا الأخطاء التالية، وهي من نفس الطبيعة. لنفترض أن هناك ملف a.html:

require_once "a.html";
header("الموقع: ".$_SERVER["HTTP_REFERER"]); // إعادة التوجيه مرة أخرى
مخرج؛
?>

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

والنقطة الأخيرة، ولكن أكثر صعوبة. اتضح أنه في بعض الأحيان يحدث هذا الخطأ حتى مع وجود الكود الصحيح. ثم كل إنها مسألة ترميز. تأكد من أن ترميز الملف هو " UTF-8 بدون BOM"وبالضبط" بدون بوم"وليس فقط" ترميز UTF-8". بسبب ال بومهي البايتات التي تأتي في بداية الملف، وهي المخرجات.

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