اقتبـاس ،، ---- 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 ...
ليس هذا ما يهمنا فهذا خاص بالمطورين, المهم لماذا تظهر رسالة الخطأ هذه أو مثلا هذه:
ترميز المنتدى هو utf-8 وعند حفظ الملف الذي تعدل عليه باستعمال النوتباد في ويندوز أو محرر النصوص الذي تستعمله يتم اضافة رمز مخفي في بداية الملف,
ï»؟
ما فائدة هذا الرمز المخفي؟
حتى تتعرف البرامج ان هذا الملف بترميز utf-8, وهذه نقطة قوه فلا تحتاج لتغيير ترميز الصفحة, فلو حاولت تغيرها في متصفح الانترنت فلا تتغير وتبقى الاحرف العربية كما هي,
هذا في صفحات الإنترنت العادية وملفات النصوص, أما في المنتدى فيختلف الأمل لأن هناك ملفات كثيرة يتم استدعائها عمل ذللك على ملف في المنتدى لا يعني أن منتداك سيكون كذلك.
هل يجب ازالت هذا الرمز؟
فقط عند الحاجة لذلك, اذا كانت صفحة انترنت عادية, فلا حاجة.
فيما يلي بعض حالات الخطأ التي تحصل بسبب وجود هذه الرموز:
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, إذا فعلت ذلك ستظهر لك الأحرف العربية مربعات.
الحل كما سبق ذكره.
بصراحة موضوع رائع
يعنى دلوقتى علشان الحرف المخفى دة ميظهرشى ويبوظ الترميز utf-8 نستخدم محرر للملفات أفضل من المحرر النوت باد بتاع الويندز .
ولكن لو استخدمت النوت باد الويندوز هل يمكن عند الحفظ احفظ بامتداد utf-8 بدلا من Encoding = ANSI ام سيبوظ ايضآ يظهر هذه الرمز المخفى
تم تحرير المشاركة بواسطة :ياسر عتريس
بتاريخ:13-11-2010 12:07 صباحاً