وردپرس

خطای خروجی غیرمنتظره افزونه

آموزش عیب یابی و رفع مشکل خطای غیر منتظره فعالسازی افزونه

پیغام خطا: افزونه هنگام فعال شدن٬ X نویسه از یک خروجی غیرمنتظره تولید کرد. اگر با پیغام خطای “headers already sent”٬ مشکلات مربوط به خوراک و یا مسائل دیگر مواجه شدید سعی کنید افزونه را غیرفعال یا حذف کنید.

و یا :

The plugin generated X characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

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

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

منشاء مشکل خطای خروجی غیرمنتظره افزونه چیست؟

  •  وجود کاراکتر اضافه در خارج از تگ php افزونه
  • خروجی warning در مرحله پردازش افزونه
  • و مهمترین عامل: Encoding نا مناسب فایل های افزونه

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

آیا خطای خروجی غیرمنتظره افزونه خطرناک است؟

خیر. آیا باید قید افزونه رو بزنید؟ خیر.!

همانطور که گفته شد، این مسئله بیشتر بخاطر انکدینگ نامناسب است و ریسک امنیتی بالایی به خودی خود ندارد.

خطای خروجی غیرمنتظره افزونه ، باعث چه مشکلاتی می گردد؟

در متن پیام، ارورهای احتمالی ذکر شده ولی شایع ترین مشکل همان صفحه سفید معروف وردپرس است.

چگونه خطای خروجی غیرمنتظره افزونه، و مشکل Encoding را رفع کنیم؟

 

جهت رفع خطای انکدینگ باید انکدینگ فایل را ANSI قرار داد اما با توجه به این که افزونه های زبان فارسی توسط ANSI پشتیبانی نمی شوند چاره ای به جز انکدینگ UTF-8 نخواهیم داشت.

همانطور که می دانید، برای اینکه یک فایل با زبانهای غیر انگلیسی، نمایش درستی داشته باشد، باید نوع انکدینگ فایل UTF-8 باشد. اما با تغییر نوع UTF-8 ، ما براحتی می توانیم این مشکل را حل کنیم.

خطای “headers already sent” که گاهی باعث سفید شدن صفحه وردپرس تان می شود می تواند از انکدینگ یکی از فایل های افزونه باشد. مشکل دقیقا از انکدینگ نوع UTF with BOM می باشد. BOM بودن فایل باعث بروز خطای خروجی غیرمنتظره می شود.

برای رفع مشکل، باید در وهله اول افزونه مشکل دار را پیدا کنید…
دوم : فایلی از افزونه که انکدینگ نوع UTF with BOM دارد را پیدا کنید…
و در آخر نوع انکدینگ فایل را به UTF without BOM تغیر داده، ذخیره کنید و در پوشه مورد نظر هاست، آپلود کنید.

save php as utf-8 without BOM
ذخیره فایل با انکدینگ مناسب برای افزونه وردپرس

راهنمای کامل تر برای تازه کاران : ویرایش فایل php را میتوانید با Notepad انجام دهید. ولی مشکلی که وجود دارد اینست که Notepad گزینه ای برای سیو فایل بصورت UTF without BOM ندارد.
به این منظور باید ویرایش را یا با Notepad++ و یا نرم افزارهای ویرایش PHP انجام دهید. از بین نرم افزارهای ویرایش php ، پیشنهاد من برنامه Blumenthal Rapid PHP می باشد.

در صورتی که به کمک بیشتری نیاز دارید یا این ترفند، مشکل شما را حل نکرد، در کامنت ها با ما مطرح کنید.

رامین مرادی

بنیانگذار مجموعه گیکس | عاشق وردپرس ، PHP ، طراحی و کدنویسی | گیک کامپیوتر، وب ، تکنولوژی و IT

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

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

دکمه بازگشت به بالا