PDA

View Full Version : Cannot modify header information - headers already sent by



MPG2710
دوشنبه 10 مهر 1391, 10:31 صبح
با سلام خدمت مهندسین و دوستان عزیز!
من قبلآ یک سایت طراحی کرده‌ بودم روی هاست قبلی به‌ خوبی کارت می کرد ولی روی هاست جدیدی که‌ گرفتم برای برخی از صفحات این پیغام خطا را میده‌.
Cannot modify header information - headers already sent by

encoding را برای برخی از صفحات ansi کردم مشکل شان حل شد ولی در فایرفکس کماکان این ارور رو میده‌. در ضمن من قبل از استفاده‌ از دستور header هیچ دستور خروجی استفاده‌ نکردم که‌ باعث مشکل بشه‌ (هر چند در هاست قبلی برای این مورد هم خطا نمی داد).
ممنون میشم راهنمایی بفرمایید.

reza10wert
دوشنبه 10 مهر 1391, 10:57 صبح
اول صفحه قبل از همه دستورات این رو بنویس


<?php ob_start(); ?>

و فایل را با Notepad++ یا Dreamweaver باز کن و در حالت Without BOM ذخیره کن
امتحان ببین جواب میگیری

tux-world
سه شنبه 11 مهر 1391, 06:07 صبح
یه نکته مهمی هم که هستش اینه که قبل استفاده از تابع هدر نباید هیچ چیزی تو خروجی بیاد مثل این باید باشه که شما تو فایل اونو اول خط مینویسید.

sadra.r
پنج شنبه 14 شهریور 1392, 10:43 صبح
سلام
من از header توي localhost_xamp استفاده ميكنم هيچ مشكلي نداره اما توي هاستم خطاي Cannot modify heade ميده :متفکر:

sadra.r
پنج شنبه 14 شهریور 1392, 10:45 صبح
<?php ob_start(); ?>
فايده نداشت

mbf5923
پنج شنبه 14 شهریور 1392, 11:33 صبح
با سلام
دوست عزیز این خط رو ابتدای صفحه بنویسید یعنی اولین خط کد صفحه باید این باشه:


ob_start();
در آخرین خط هم این عبارت رو بنویسید:

ob_end_flush();
این بدین معناست که صفحه خروجی نداشته باشه تا وقتی کل اسکریپت اجرا بشه و اگه در اسکریپت هدر تغییر کرد امکان ارسال هدر صحیح وجود داشته باشه

masato
پنج شنبه 14 شهریور 1392, 13:30 عصر
این جا (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C)

ابوذر محمودی
پنج شنبه 14 شهریور 1392, 14:43 عصر
چک کن ببین شاید قبل از تگ php فاصله خالی وجود داره ، اگه فاصله خالی وجود داشت اون فاصله ها رو حذف کن.
و اینکه کدگذاری صفحت به صورت UTF-8 without BOM باشه.
اگه درست نشد از ob_start(); استفاده کن ، بهتره اولین دستور تو صفحه باشه. یعنی همون اول صفحه اول تگ php باز شه بعد این دستور و بعد کدهای دیگه.
این هم میشه که بالای هر فراخوانی دستور هدر ، flush() رو استفاده کرد.

sadra.r
پنج شنبه 14 شهریور 1392, 15:31 عصر
سلام
از همه شما ممنونم درست شد :لبخندساده: