من در اجرای دستور header در سایت با مشکل برخوردم
Warning: Cannot modify header information - headers already sent by
برای آزمایش یه فایل فقط با یک خط دستور رو آپلود کردم (بصورت زیر)
<html>
<?php
header('Location: http://www.google.com/');
?>
ولی باز خطائی بالا تکرار میشه . لطفاً راهنمائی کنین .
نمی دونم با این یک خط چطوری اپلود رو انجام دادی ولی تا اونجایی که من می دونم :
توی فایل php نباید قبل از دستور Header هیچ کد html ی نوشته شده باشه.
حتی Enter هم نباید موجود باشه .
اين خطا يكي از شايع ترين خطاها در زبان PHP محسوب ميشه كه چندين دليل داره، فضا/خط/كد اضافي قبل و بعد از اعلان شروع و پايان دستورات PHP يعني<? php?>، نوع فرمت فايل، فرستادن اطلاعات سرآيند (header) ديگر قبل از header فعلي با اجرا شدن دستور ()header.
بنابراين دستور شما با حذف خط/كد/فضا اضافي ميبايست به صورت زير اصلاح بشه:
<?php
header('Location: http://www.google.com/');
?>
در صورت بروز مجدد اين مشكل حتمالاً مشكل در فرمت فايل و UTF-8 بودنش هستش، با برنامه ++Notepad فايل php رو اجرا و از گزينه Format گزينه ي Encode in UTF-8 without BOM رو انتخاب كنيد تا مشكل حل شه.
در مورد فضاهاي اضافي نرم افزارهايي مانند winhex هستند كه توسط اونها اين فضاها قابل مشاهده و حذف هستش.
در صورتي كه باز هم اين مشكل وجود داره؛ در فايل php.ini تنظيم output_buffering رو از off به on تغيير بدين و روش ديگر اينكه اين دستور رو به صورت زير به كار بگيريد:
<?php
ob_start();
header('Location: http://www.google.com/');
ob_end_flush();
?>
مراحل اوليه در فايل استانداردي كه پيوست كردم رعايت شده كه با استفاده از اون به هدف خودتون ميرسيد.
موفق باشيد.