در ادامه مقالات و آموزشهایی که پیرامون مشکلات بوجود آمده پس از بروزرسانی جوملا به نسخه ۳٫۸ به آنها پرداخته ایم این بار خطای دیگری را مورد بررسی قرار میدهیم که به دلیل عدم فعال یا در حالت اجرا بودن یک تابع بخصوص و مورد نیاز در برخی از افزونه ها و ماژول ها بروی سرور شما می باشد. تابع exif_imagetype یکی از از توابع پرکاربرد برای نمایش و لود تصویر در ماژول ها و افزونه های پرکاربرد جوملایی ست. این تابع که اساسا میتواند در هر سیستم و و نرم افزار تحت PHP بکارگرفته شده باشد میتواند موجبات بروز خطا را فراهم کند.
نمونه خطاهای جوملایی:
1 2 |
PAGE_404 Call to undefined function exif_imagetype() |
1 |
Fatal error: Call to undefined function exif_imagetype() in |
نمونه ای از کد غیرجوملایی:
1 2 3 4 5 6 7 8 9 10 11 12 |
if(!empty($_FILES['uploadfile']['name']) && $_FILES['uploadfile']['error'] == 0){ $file = $_FILES['uploadfile']['tmp_name']; $file_type = image_type_to_mime_type(exif_imagetype($file)); switch($file_type){ // Codes Here } } |
راه حل :
در حالت جوملایی همانطور که عرض شد اگر خطایابی جوملا را بروی حداکثر قرار دهیم با مشخص شدن عامل بروز خطا براحتی میتوانید اقدام به رفع آن کنید. بطور مثل ما در سایت خود در حال کار با ماژول SJ Mega News بوده ایم که با خطای فوق مواجه شدیم. عموماً این خطا در ماژول یا افزونه هایی رخ میدهد که در آن فیلد نمایش تصویر وجود دارد.
برای حل این مشکل به مسیر public_html/modules/mod_sj_meganews/core/helper_image.php رفته و کد زیر را در آن پیدا کنید:
1 |
if ( !function_exists('exif_imagetype') ){ |
خط بالا را حذف و کد زیر را جایگزین کنید.
1 |
if ( function_exists('exif_imagetype') ){ |
با این ترفند این مشکل برطرف میشود.
[quote]
مطالعه کنید:
رفع خطای Class ‘SoapClient’ not found در سایت
[/quote]
حال اگر از سایر سیستم ها و یا کدهای اختصاصی PHP استفاده کردیم و به این مشکل برخورد کردیم چه کنیم؟
همانطور که در خطای نمونه ی دوم در بالا بعنوان مثال یک خطای غیرجوملایی ذکر شد. این خطا در هر حالتی ممکن است رخ دهد و صرفاً مختص به جوملا نیست.
در حالت کلی برای رفع مشکل فوق میبایست دو خط کد به فایل php.ini اضافی کنیم تا این توابع در اجرا قرار بگیرند. برای اینکار فایل php.ini را از مسیر لوکال هاست و یا در روت هاست باز میکنیم و به دنبال کدهای زیر میگردیم و آنها را در حالت فعال قرار میدهیم.(اگر کامنت هستند آنها را از حالت کامنت بودن خارج میکنیم تا فعال شوند). سپس فایل را ذخیره و وب سرور یا ریستارت میکنیم.
1 2 |
extension=php_mbstring.dll extension=php_exif.dll |
در صورت وجود هرگونه سوال پیرامون این موضوع ؛ سوال خود را بصورت کامنت در همین مقاله ارسال فرمایید.