اگر از سیستم مدیریت محتوای وردپرس برای سایت خود استفاده می کنید ممکن است با ارور یا هشدار Cannot Modify Header Information مواجه شده باشید. برای بررسی علت این موضوع ابتدا باید بدانیم که درخواست های ارسالی یا پاسخ های دریافتی از طریق http شامل دو بخش header و body می باشد. اطلاعات Header ارسالی معمولا شامل user-agent، کوکی (cookie)، تنظیمات کش (cache) و بعضی موارد دیگر است. اگر ابتدا اطلاعات body ارسال شوند و سپس قصد داشته باشیم header را تغییر دهیم با ارور مورد بحث این آموزش مواجه خواهیم شد.
این ارور عموما به صورت متن زیر نمایان خواهد شد :
Warning: Cannot modify header information - headers already sent by (output started at ---) in --- on line --
برای بررسی این موضوع، مراحل زیر را انجام خواهیم داد.
1 – حذف فاصله ها و خطوط اضافه
با بررسی متن ارور و مشاهده نام فایلی که ارور در آنجا رخ داده است، به سراغ حل مشکل می رویم. برای مثال فرض می کنیم در فایل functions.php مربوط به قالب وردپرس یا wp-config.php مربوطه به اتصال دیتابیس، این خطا به وجود آمده است.
در اینجا با استفاده از ویرایشگر سی پنل فایل wp-config.php را باز می کنیم. باید دقت کنیم قبل از تگ باز شده ی php ، فاصله ی اضافه ای وجود نداشته باشد و اگر وجود داشت آن را حذف می کنیم. همچنین در انتهای فایل اگر تگ بسته شده ی php وجود دارد، فضای خالی مربوط به آن را نیز حذف می کنیم.
البته می توانیم به صورت کلی از تگ برای بستن استفاده نکنیم، در این صورت مفسر php به صورت خودکار تگ را خواهد بست.
نکته : اگر می خواهید به جای ویرایشگر سی پنل از ابزارهای دیگری استفاده کنید، باید در انتخاب آن دقت کنید. برای مثال استفاده از notepad ممکن است کدهایی را به فایل شما اضافه کند. گرچه شاید قابل مشاهده نباشند اما وجود دارند و منجر به بروز ارور خواهد شد. استفاده از notepad++ می تواند یک ابزار خوب برای این موضوع باشد.
2 – جایگزینی فایل ها (افزونه ها)
اگر با بررسی های انجام شده و مشاهده متن ارور به نتیجه رسیدیم که مشکل از افزونه وردپرسی است، باید آن افزونه را حذف کنیم یا از نسخه بروز شده که مشکلی نداشته باشد استفاده کنیم.
3 – بررسی کدهای نوشته شده
به صورت پیشفرض، باید header قبل از body قرار بگیرد و اگر در کدهای مورد استفاده، این مورد رعایت نشده باشد، باید نسبت به اصلاح آن اقدام کنیم. برای مثال در کدهای زیر مشاهده می شود که header در قسمت اشتباه قرار داده شده است و منجر به ارور مورد بحث این آموزش خواهد شد.
<html>
<?php
header('Location: https://parswebserver.com/');
?>
امیدواریم این آموزش مورد توجه شما قرار گرفته باشد.