خطا وردپرس

یکی از خطاهای بسیار رایج در سیستم مدیریت محتوای وردپرس و اسکریپت‌های گوناگون از جمله PHP که اکثرا با آن روبرو می‌شویم خطای “Cannot modify header information است، در این پست قصد داریم به چگونگی و علت رخ دادن این ارور و همچنین آموزش رفع آن بپردازیم. با یادگیری این  مقاله قادر خواهید بود در هر اسکریپتی که با این خطا مواجه شدید آن را برطرف کنید.

دلیل خطای Cannot modify header information

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

Warning: Cannot modify header information – headers already sent by (output started at)

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

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

نحوه رفع خطای Cannot modify header information

برای اینکه بتوانیم مشکل را اساسی بررسی و مرتفع کنیم بهتر است بدانیم که کدام فایل از برنامه دچار خطا شده است. برای این مسئله باید خطای کاملی که برای شما ارسال شده است را مطالعه کنید، معمولا در سینتکس اطلاعاتی که لازم دارید در اختیار شما قرار داده شده است. به مثال زیر توجه کنید.

این یک سینتکس کلی است که معمولا بعد از خطا نمایش داده میشود:

Warning: Cannot modify header information ; headers already sent by (output started at /path/to/broken-file.php:#) in /path/to/affected-file.php on line #

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

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

در ابتدا مطمئن شوید که encoding فایلی که خطا در آن رخ داده است روی فرمت UTF-8 تنظیم باشد، حتی اگر اینکودینگ فرمت دیگری داشت با کپی کردن آن روی یک ویرایشگر متنی مثل ++notepad می‌توانید آن را با فرمت یاد شده ذخیره کنید و کار را آغاز نمایید.

روش دوم : رفع خطا در لوکال

از قسمت config  برنامه ی xampp، فایل php.ini  رو باز کنید، داخل فایل php.ini بشید و داخل اون خط output_buffering = On رو در صورت وجود از حالت کامنت در بیارید و  یا اگر نبود به صورت دستی وارد کنید سپس دوباره xampp رو ریست کنید.

روش دوم حل خطای Cannot Modify Header Information

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

اولین کاری که باید هنگام مواجه شدن با خطای « Cannot Modify Header Information – Headers Already Sent By » انجام دهید، باز کردن فایلی است که باعث ایجاد مشکل شده است. سپس، خطی را که پیام نشان می‌دهد، پیدا کنید.

به عنوان مثال، اگر خطایی مانند خطای زیر را مشاهده کردید، به این معنی است که باید داخل فایل 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

در این سناریو، می‌توانید با استفاده از ویرایشگر قالب وردپرس به علت مشکل برسید. برای دسترسی به آن، به Appearance > Theme Editor قالب بروید. هنگامی که وارد شدید، از منوی سمت راست استفاده کنید تا فایل مورد نیاز برای دسترسی را انتخاب کنید.

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

اکنون وب سایت خود را مجدداً بارگیری کنید و خطا برطرف می‌شود. می‌توانید همین فرآیند را با استفاده از ویرایشگر افزونه وردپرس ( افزونه‌ها  > ویرایشگر افزونه ) اعمال کنید. این روش در صورتی قابل اجرا است که پیام خطا به فایل پلاگین معیوب اشاره داشته باشد. از طرف دیگر، ممکن است با خطایی مواجه شوید که یکی از فایل‌های موجود در فهرست افزونه‌های وردپرس شما را نشان می‌دهد.

در این سناریو می‌توانید آن افزونه را حذف و دوباره نصب کنید. در بیشتر موارد، این موضوع را برای شما حل می‌کند. با این حال، به خاطر داشته باشید که بسته به ابزاری که استفاده می‌کنید، ممکن است تنظیمات سفارشی سازی شده افزونه را از دست بدهید. به این ترتیب، ممکن است لازم باشد افزونه را دوباره راه اندازی کنید.

دیدگاهتان را بنویسید