خطای Cannot Modify Header Information – Headers Already Sent By

اکثر خطاهای وردپرس به طوری به کاربران نمایش داده میشوند که به مشکل اصلی اشاره میکنند و این خطا نیز از این قاعده مستثنا نیست.

اگر فایل php به دلیل وجود مشکلاتی در کد، قابل اجرا نباشد با این خطا روبرو میشوید.

 

چند دلیل احتمالی برای بروز خطای Cannot modify header information وجود دارد. خوشبختانه وردپرس به طور دقیق آدرس محل خطا را به شما نشان میدهد و با ذکر جزئیات فایل و حتی خط مورد نظر را به شما اعلام میکند.

 

در این مقاله قصد دارید به بررسی این خطا و دو راه پیشنهادی برای حل این مشکل بپردازیم پس با ما همراه باشید.

 

علت خطای Cannot Modify Header Information – Headers Already Sent By چیست؟

 

همانطور که در اول مقاله ذکر کردیم، در صورت اجرا نشدن یکی از فایل های PHP با این خطا مواجه میشویم. وردپرس برای بارگزاری کامل و اجرا شدن به یکسری فایل کلیدی و مهم  از قبیل: wp-config.php و functions.php و… وابسته است.

اگر مشکلی برای بارگزاری کامل کد ها و فایل های php وجود داشته باشد احتمالا با یکی از خطاهایی که روبرو خواهید شد، خطای زیر است:

Warning: Cannot modify header information – headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

خوشبختانه این خطا به طوری است که مستقیما شما را به محل مورد نظر راهنمایی میکند و عیب یابی آن نسبتا کار ساده ای است. در خطای بالا مشاهده میفرمایید که متن خطا آدرس 2 فایل را در اختیار شما قرار داده است. فایل اول همان فایلی است که دچار مشکل شده و از اجرای فایل دوم نیز جلوگیری میکند.

اگر به متن خطا دقت کنید خواهید دید که حتی در انتهای آن آدرس دقیق خطی که دچار مشکل شده را نیز در اختیار شما قرا میدهد و این موضوع کمک بسزایی در عیب یابی سریع تر مشکل میکند.

معمولا وجود مشکل در کدهای php براحتی قابل حل است. در زیر چند چند نمونه از مشکلات رایجی که باعث بروز خطا میشوند را باهم مرور میکنیم:

 

  • فضای خالی قبل از تگ باز شدن <?php یا بعد از تگ بسته شدن ?>
  • استفاده از کدهای دستوری HTML قبل از تابع های سربرگ php
  • استفاده از دستوران print یا echo قبل از تابعا های سربرگ php
  • تداخل با کدهای یک افزونه

 

شاید حل این مشکل مستلزم آن باشد که آشنایی مختصری با کدهای php داشته باشید. دقت کنید که قرار نیست از خودتان کدی به فایل اضافه کنید، همین که صرفا یک آشنایی پایه ای با بحث ویرایش فایل ها داشته باشید کافی است.

به هر حال ممکن است برای حل این مشکل به کمک مختصری نیاز پیدا کنید، مخصوصا اگر مشکل به وجود آمده به دلیل وجود فضای خالی یا دستورات اضافی قبل از تابع سربرگ نباشد.

 

نحوه عیب یابی خطای: Warning: Cannot Modify Header Information Headers Already Sent By” Error به 2 روش:

 

2 روش برای حل این مشکل وجود دارد که در روش اول حتی نیازی به ترک محیط میز کار وردپرس سایت خود نیز ندارید!

استراتژدی دوم استفاده از FTP/SFTP است. اگر به هر دلیلی به میز کار وردپرس دسترسی ندارید میتوانید از این روش استفاده کنید.

 

  1. خطا را با استفاده از حذف افزونه یا قسمت ویرایشگر پوسته رفع کنید.

اول فایلی که مشکل درست کرده را پیدا کنید و بعد به سراغ خط مورد نظر بروید.

برای مثال اگر با خطایی همانند خطای زیر مواجه شدید باید به سراغ فایل functions.php بروید:

Warning: Cannot modify header information – headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

در این سناریو در میزکار پنل وردپرس خود به قسمت نمایش و سپس ویرایشگر پوسته بروید تا بتوانید براحتی به منبع مشکل برسید. در صفحه پیش رو ابتدا فایل مورد نظر را پیدا کنید و سپس به خطی که در خطا به آن اشاره شده رجوع کنید.

 

 

اگر به تصویر بالا دقت کنید خواهید دید که پشت تگ <?php مقداری فضای خالی وجود دارد و خود متن خطا نیز به خط 1 اشاره کرده است. بنابراین واضح است که خطا به همین دلیل است و میتوانید با پاک کردن فضای خالی و ذخیره فایل، مشکل را رفع کنید. بعد از ذخیره فایل میتوانید صفحه وبسایت خود را مجددا بارگزاری کنید.

 

شاید در متن خطا آدرس فایلی از یک افزونه نمایش داده شود. در این شرایط میتوانید برای اطمینان از مشکل ایجاد شده توسط افزونه، آن را غیر فعال کنید و مجددا صفحه را بارگزاری کنید.

در صورت وجود مشکل در افزونه مورد نظر نیز باید مشکل را بررسی کنید و در صورت امکان با پشتیبانی افزونه تماس بگیرید. ممکن است افزونه ای که غیر فعال کرده اید برای وبسایت شما کاملا حیاتی و مورد نیاز باشد!

 

  1. فایل مشکل دار را از طریق FTP/SFTP ویرایش کنید

 

ممکن است فایلی که در متن خطا به آن اشاره شده از طریق قسمت ویرایشگر پوسته در دسترس نباشد و یا اصلا شما از سی ام اس دیگری بغیر از وردپرس استفاده کنید.

در این حالت بهترین روش برای حل مشکل استفاده از FTP/SFTP برای ویرایش فایل است. برای انجام این کار، باید از یک سرویس گیرنده FTP یا SFTP مانند پلتفرم FileZilla استفاده کنید.

همچنین باید به اطلاعات هاستینگ خود دسترسی کامل داشته باشید.

اگر از Kinsta استفاده می کنید، می توانید با دسترسی به MyKinsta ، وب سایت خود را در قسمت Sites انتخاب کنید و روی تب اطلاعات آن کلیک کنید.

 

 

پس از دریافت اعتبار، از سرویس گیرنده FTP یا SFTP خود برای اتصال به وب سایت استفاده کنید. شما باید پوشه ریشه و اصلی سایت را پیدا کنید. معمولاً نام آن باید: root , public , public_html و یا نام سایت شما باشد.

در اینجا نگاهی گذرا به داخل پوشه ریشه وردپرس داریم.

 

 

فایلی که باعث بروز خطای Cannot modify header information – headers already sent by شده را پیدا کنید. روی فایل کلیک راست کنید و گزینه View/Edit را انتخاب نمایید.

 

 

اگر فایل را با موفقیت پیدا و باز کنید، در قدم بعدی میتوانید به خط مورد نظر که خطا بخاطر کدهای موجود در آن خط اتفاق میوفتد رجوع کنید و مشکل را برطرف نمایید.

 

 

اگر با این وجود نتوانستید خطای فوق را برطرف کنید، بهتر است با فردی که آشنایی کاملی با کدهای php دارد صحبت کنید. اما اگر مشکل بسیار ساده باشد، همانند وجود فضای خالی یا هر کاراکتری قبل از تابع سربرگ، باید با استفاده از آموزه های این مقاله براحتی بتوانید مشکل را برطرف کنید.

 

خلاصه

خطای Warning: cannot modify header information – headers already sent by در ظاهر و در نگاه اول میتواند یک خطای ترسناک باشد، چرا که بسیار متن طولانی دارد! ولی واقعیت این است که این خطا یکی از ساده ترین خطا های موجود است که همانطور که در مقاله مطالعه کردید براحتی قابل حل است.

همیشه به متن خطا ها دقت کنید، در اغلب موارد فایلی که عامل خرابی است و حتی خطی که کد های آن عامل بوجود آمدن خطا هستند در متن خطا به شما نشان داده میشود.

 

پس بسته به فایلی که باعث ایجاد مشکل برای شما شده، 2 راه حل برای حل این مشکل وجود دارد:

  • خطا را با استفاده از حذف افزونه یا قسمت ویرایشگر پوسته رفع کنید.
  • فایل مشکل دار را از طریق FTP/SFTP ویرایش کنید

رفع این خطا بسیار ساده است ولی با این حال اگر هیچ آشنایی با کدهای php ندارید بهتر است از یک متخصص کمک بگیرید.

 

اگر تجربه ای از بروز این خطا و رفع آن دارید لطفا آن را با ما به اشتراگ بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

کد امنیتی Time limit is exhausted. Please reload CAPTCHA.