۹۶/۱۱/۲، ۰۶:۰۷ صبح
در این مقاله با سه نوع خطای php از جمله Notice و Strict Standards و Deprecated که در جوملا ممکن است با آن روبرو شوید به صورت کامل آشنا خواهید شد و روش حل این موارد را می آموزید.
روزانه تعداد زیادی از سوالات کاربران مربوط به خطاهای موجود درسایت های جوملایی است که در این آموزش سعی می کنیم آموزش های لازم در این زمینه را به شما ارايه کنیم.
خطاها در جوملا انواع متفاوتی دارد مهم ترین خطاها در جوملا از نوع Fatal Error و Warning بوده که این خطاها جدی ترین خطاها در php هستند و باعث مختل شدن عملکرد تمام سایت یا بعضی از قسمت های سایت می شوند. این خطاها علت های متفاوتی دارند که باید از دیدگاه برنامه نویسی بررسی و برطرف شوند و نیاز به توجه جدی دارند. اما در این مقاله بنا نیست در مورد این دو خطای مهم بیش از این صحبت کنیم.
خطاها و پیام های دیگری در جوملا وجود دارند که از اهمیت پایین تری برخوردار هستند و یاد میگیریم هر کدام از آن ها چه کاربردی دارند و چگونه نمایش آنها را غیر فعال کنیم.
۱-Notice:
این نوع پیام ممکن است ۱ عدد در صفحه و یا تمام صفحه شما را پر کرده باشد. این خطا اهمیت چندانی ندارد و به شما نکاتی را که در برنامه نویسی اشتباه انجام شده باشد و یا دارای مشکلی جزئی می باشد ولی هیچ آسیبی به سایت شما نمی زند را گوش زد می کند مانند نمونه زیر:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
۲-Strict یا Strict Standards:
این پیام هم به شما نکات درست برنامه نویسی را گوشزد می کنند به قول برنامه نویس ها مانند پیرمردی نصیحتتان می کنند و راهنمایی می کند که در برنامه نویسی لقمه را دور سرت نپیچ. مانند نمونه زیر:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
۳-Deprecated:
این کد از نسخه ۵ به بعد به php اضافه شد این پیام نیز شما را نصیحت می کند اما کمی متفاوت و به شما می گوید که اگر از این کد استفاده کنید در صورت آپدیت php ممکن است به درستی کار نکند. در واقع کد های منسوخ شده را به شما اعلام می کند مانند:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
این سه نوع خطای یا بهتره بگیم پیامی که با آنها آشنا شدیم همگی پیام های بی خطری هستند و برای سایت شما مشکلی ایجاد نمی کنند و ادامه یاد می گیریم به چه صورت نمایش این خطاها را در سایتتان غیر فعال کنید.
این موارد معمولا در زمانی نمایش داده می شود که گزینه نمایش خطای php بر روی نمایش تمام پیام ها باشد که معمولا این موارد فقط برای برنامه نویس ها کاربر دارد و به صورت استاندارد تنظیمات php سرورها باید بر روی فقط نمایش خطاهای مهم باشد.
در ادامه به شما می آموزیم چگونه باید در صورتی که گزارش خطا روی نمایش همه پیام ها بود آن را اصلاح کنید:
۱- راه حل اول: معمول ترین راه برای برطرف کردن و عدم نمایش این پیام ها، غیر فعال کردن این مورد از طریق بخش تنظیمات کلی جوملا است.
در مدیریت جوملا مسیر زیر را طی کنید:
منوی سایت یا منوی اول/ تنظیمات کلی جوملا/ زبانه سرور
گزینه ای با نام گزارش خطا وجود دارد که معمولا بر روی گزینه سیستم پیش فرض قرار دارد و به این معنا است که تنظیمات نمایش پیام های php را از سرور شما می خواند. شما با قرار دادن این گزینه بر روی ساده می توانید تنظیم کنید که فقط خطاهای اساسی و مشکل ساز را به شما نمایش دهد و یا با قرار دادن این گزینه بر روی هیچ می توانید تنظیم کنید که هیچ خطا و پیامی را نمایش ندهد که در این صورت اگر خطای مهمی به وجود بیاید به جای نمایش خطا صفحه سایت شما سفید خواهد شد.
این روش در ۹۰٪ مواقع مشکل را رفع می کند اما ممکن است بنا به هر دلیلی مشکل برطرف نشود که ما راه حل های دیگری را به شما آموزش می دهیم.
۲- راه حل دوم: خاموش کردن نمایش خطا از طریق فایل php.ini
اگر این مشکل را در سرور لوکال خود دارید شما به راحتی به فایل تنظیمات اصلی php در سرور لوکال خود دسترسی دارید و به عنوان مثال در سرور های لوکال xamp این فایل در مسیر زیر قرار دارد xampp\php\php.ini و در سرور های مختلف مثل wamp جایش متفاوت است
شما با پیدا کردن این فایل آن را ویرایش نموده و دنبال واژه display_errors بگردید و این گزینه را به صورت زیر تنظیم نمایید:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
سپس فایل را ذخیره نموده و اقدام به ری استارت و بارگزاری مجدد سرور لوکال خود نمایید.
اگر مشکل شما در سرور و هاست های آنلاین است و شما مدیر اصلی سرور نیستید قاعدتا به فایل php.ini اصلی سرور دسترسی ندارید اما بعضا به شما این امکان داده می شود که بتوانید فایل php.ini خود را داشته باشید برای این کار کافیست در پوشه روت هاست خود که معمولا public_html است فایلی با نام php.ini بسازید و کد بالا را در آن قرار دهید. البته توجه داشته باشید امکان کار کردن این مورد پایین است به دلیل این که اکثر هاست ها این امکان را به کاربران خود نمی دهند. حتی ممکن است خطا دریافت کنید در این صورت فایل ساخته شده را حذف کنید.
۳- راه حل سوم: خاموش کردن نمایش خطا از طریق فایل htaccess.
در پوشه اصلی جوملا فایلی با نام htaccess.txt وجود دارد که امکانات زیادی را به کاربران می دهد. شما با تغییر نام این فایل از htaccess.txt به htaccess. (اول نقطه و سپس htaccess) ابتدا آن را فعال نمایید سپس کد زیر را به انتهای آن اضافه کنید:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
سپس ذخیره کنید. البته توجه داشته باشید که باز هم ممکن است مدیر سرور شما دسترسی این کار را هم به شما نداده باشد و با ذخیره این فایل سایت شما خطای internal server error یا خطای 500 دریافت کند. که در این صورت لازم است کد هایی که اضافه کردید را حذف نمایید و فایل را مجددا ذخیره کنید.
۴- راه حل چهارم: خاموش کردن نمایش خطای php از طریق فایل php
در این روش شما وارد پوشه اصلی جوملا شده و فایل index.php را باز می کنید در ابتدای فایل پس از تگ <?php یک اینتر بزنید و به خط بعد بروید سپس کد زیر را اضافه نمایید:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
سپس ذخیره کنید. اگر مشکل برطرف نشد و یا خطایی دریافت کردید تغییرات را به حالت اول برگردانید.
۵- راه حل پنجم: تماس با مدیر هاست
شما می توانید با مدیر هاستتان تماس حاصل نموده و بخواهید نمایش پیام ها و خطاهای php را برای اکانت شما غیر فعال کند. شاید بپرسید این راه حل ساده را چرا به عنوان اولین راه حل به شما پیشنهاد نکردم و علت آن این است که متاسفانه پشتیبانی هاست ها بعضا پاسخگویی ضعیفی دارند و یا مسئولیت این موارد را قبول نمی کنند و یا بعضا محدودیتی در انجام تغییرات دارند.