منتدى دعم PBBoard الرسمي
(نسخة قابلة للطباعة من الموضوع)
https://pbboard.info/forums/t2468
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

Cannot modify header information السبب والحل
PhpMax 28-09-2010 01:13 مساءً
بسم الله الرحمن الرحيم

اقتبـاس ،، ---- php.net ---
header();
... header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
---- php.net ---

دالة الهيدر يجب أن تستدعى قبل أي مخرج يرسل, سواء بأوسمة هتمل العادية, أو حتى سطر فارغ من الملف أو نتاج كود php. .......

أمثلة ستنتج لك خطأ يظهر لك الصفحة:

CODE
Warning: Cannot modify header information - headers already sent by ... 


مثال1:
CODE
 
<html> 
<?php 
header('**: http://www.example.com/'); 
?> 


لاحظ وجود وسم <html> وهو سبب ظهور هذا الخطأ.

مثال2:
CODE
 


&lt;?php 
header('**: http://www.example.com/'); 
?&gt; 

لاحظ وجود سطر قبل كود الهيدر وهو سبب الخطأ.

ليس هذا ما يهمنا فهذا خاص بالمطورين, المهم لماذا تظهر رسالة الخطأ هذه أو مثلا هذه:


ترميز المنتدى هو utf-8 وعند حفظ الملف الذي تعدل عليه باستعمال النوتباد في ويندوز أو محرر النصوص الذي تستعمله يتم اضافة رمز مخفي في بداية الملف,

ï»؟

ما فائدة هذا الرمز المخفي؟
حتى تتعرف البرامج ان هذا الملف بترميز utf-8, وهذه نقطة قوه فلا تحتاج لتغيير ترميز الصفحة, فلو حاولت تغيرها في متصفح الانترنت فلا تتغير وتبقى الاحرف العربية كما هي,
هذا في صفحات الإنترنت العادية وملفات النصوص, أما في المنتدى فيختلف الأمل لأن هناك ملفات كثيرة يتم استدعائها عمل ذللك على ملف في المنتدى لا يعني أن منتداك سيكون كذلك.

هل يجب ازالت هذا الرمز؟
فقط عند الحاجة لذلك, اذا كانت صفحة انترنت عادية, فلا حاجة.

كيف احذف هذا الرمز؟

استعمل برنامج محرر هكس HexEditor
وهذا واحد مجاني 493kb
http://www.handshake.de/user/chmaas/delphi/download/xvi32.zip

hexeditor

أو استعمل برنامج تحرير النصوص فيه خيار اضافة هذا الرمز أو لا مثلا Editpad lite, متوفر مجانا.
http://www.editpadlite.com/

رابط مباشر: 3.1M
http://download.jgsoft.com/editpad/SetupEditPadLite.exe

Options > Configure File types >Encoding

editpadlitepop

بعد عمل ذلك حرر الملف واحفظه من جديد في البرنامج.


فيما يلي بعض حالات الخطأ التي تحصل بسبب وجود هذه الرموز:

CODE
 
Warning: Cannot modify header information - headers already sent by (output started at D:\AppServ\www\pbb211\index.php:1) in D:\AppServ\www\pbb211\engine\systems\member.class.php on line 271 

ملف index.php في منتداك فيه هذا الرمز.
الحل كما سبق ذكره أو استعمل نوتباد في ويندوز وعند حفظ الملف اختر Encoding = ANSI

CODE
 
Warning: Cannot modify header information - headers already sent by (output started at D:\AppServ\www\pbb211\engine\config.php:1) in D:\AppServ\www\pbb211\engine\systems\member.class.php on line 217 

هذا خطأ كثيرا يحدث لأن من يركب المنتدى يعدل على ملف cionfig.php حسب قاعدة البينات التي ينشئها.
الحل كما سبق ذكره أو استعمل نوتباد في ويندوز وعند حفظ الملف اختر Encoding = ANSI

CODE
 
Warning: Cannot modify header information - headers already sent by (output started at D:\AppServ\www\pbb211\lang\ar\language.php:1) in D:\AppServ\www\pbb211\engine\systems\member.class.php on line 217 

هذا الخطأ يحدث اذا غيرت على ملف اللغة language.php.
الحل كما سبق ذكره ولاااااااااااااا تستعمل النوتباد في ويندوز ولااااااااااا تحفظ الملف بترميز ANSI, إذا فعلت ذلك ستظهر لك الأحرف العربية مربعات.
الحل كما سبق ذكره.

وآخر دعواهم أن الحمد لله رب العالمين.
منتدى دعم PBBoard الرسمي

Copyright © 2009-2024 PBBoard® Solutions. All Rights Reserved