Cannot modify header information السبب والحل



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

ستنتج لك خطأ يظهر لك الصفحة:
Warning: Cannot modify header information - headers already sent by ...


مثال1:

<html>
<?php
header('Location: http://www.example.com/');
?>

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

مثال2:
<?php

echo 'جاري نقلك للصفحة ...';
header('Location: http://www.example.com/');
?>


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

ستقول أنا متأكد ان لا يوجد لدي شي مما سبق ولكن يظهر الخطأ Can't modify ...

إذا ترميز الملف الذي تعمل عليه هو utf-8 عند حفظ الملف باستعمال النوتباد في ويندوز أو محرر النصوص الذي تستعمله يتم اضافة رمز مخفي في بداية الملف وهذا هو الرمز:
ï»؟


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

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

كيف احذف هذا الرمز؟:
استعمل برنامج محرر هكس HexEditor
وهذا واحد مجاني صغير حجمه 493kb

xvi32.zip

Cannot modify header information السبب والحل


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

EditPad Lite - Free Text Editor for Windows
Options > Configure File types >Encoding
Cannot modify header information السبب والحل


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

كما يمكنك إستعمال محرر Notpad++ لذلك.

إذا مازال الخطأ يظهر أعد ما سبق على الملفات التي يتم استدعاءها قبل دالة header مثلا ملف كونفيك config.php برنامج xvi32 الذي ذكرته سابقاً سيفيدك في ذلك.

مصدر الموضوع:


الرجاء تقييم الموضوع

تعليقات