نوشته شده توسط : طراحی سایت
رفع عیب جوملا 1.0 در php 5.3.0
 

جوملا 1.0 مشکلات بسیاری در php 5.3.0 دارد که کاربران بسیاری این مشکلات را گزارش نموده اند.

هم اکنون برای وب سایت ها زمان آن رسیده به نسخه های بالاتر به روز رسانی شوند، زیرا نسخه 1.0 جوملا جزو نسخه هایی است که پشتیبانی نمی شود و باگ های بسیاری در آن وجود دارد. برای رویت آخرین نسخه جوملا به سایت رسمی http://joomla.org مراجعه نمایید.

پس از به روز رسانی نسخه php سرور به 5.3 و بالاتر مشکلات فراوانی در سایت جوملا نسخه 1.0 به وجود می آید که برای رفه مشکلات مواردی را در این مقاله برای شما بیان می نمایم. البته باز هم اعلام می نمایم که حتما جوملای خود را به آخرین نسخه به روز رسانی نمایید.

برای سازگاری جوملا 1.0 با php 5.3 موارد زیر را می بایست در سایت انجام دهید

در صورتی که مطالب در اکثر صفحات سایت نمایش داده نمی شود فایل Function.php موجود در آدرس /public_html/includes/Cache/Lite باز نموده.

جا گذاری نمایید:

 $arguments = func_get_args();

با

 $arguments = func_get_args();
$numargs = func_num_args();
for($i=1; $i < $numargs; $i++){
$arguments[$i] = &$arguments[$i];
}

برای رفع مشکل تماس با ما جوملا VCARD.CLASS.PHP ERROR کامپوننت COM_CONTACT نمایش به صورت سفید

برای رفع مشکل کامپوننت com_contact در صورتی که در سایت صفحه تماس با ما به صورت سفید نمایش داده می شود و در کنترل پنل خطای زیر را در تماس با ما مشاهده می نمایید:

 Fatal error: Cannot redeclare quoted_printable_encode() in includes/vcard.class.php on line 74

فایل در آدرس includes/vcard.class.php را باز نموده و در خط 36 آن تابع quoted_printable_encode را بیابید. خطای اعلام شده تکرار تعریف این تابع می باشد برای جلوگیری از این اتفاق از تابع function_exists برای بررسی اینکه تابع قبلا تعریف شده و یا خیر استفاده نمایید.

 if(!function_exists('quoted_printable_encode')) { // این بخش اضافه شود
function quoted_printable_encode($input, $line_max=76) {
/* ... */
}
} // این بخش اضافه شود

زمان جوملا

تغییر جدیدی که در php 5.3 به وجود آمده نحوه تعریف زمان می باشد.

بهترین روشی که برای این مورد پیشنهاد می نمایم استفاده از .htaccess جهت تعریف زمان پیش فرض می باشد. کد زیر را به htaccess سایت خود اضافه نمایید:

 # set the server timezone
SetEnv TZ Australia/Victoria

DEPRECATED: FUNCTION EREGI() IS DEPRECATED IN INCLUDES/SEF.PHP ON LINE 533

در نسخه های جدید php علکرد تابع eregi با استفاده از تابع preg_match می باشد. بنابراین می بایست بخش هایی از سایت که از این مورد استفاده شده اصلاح گردد.

برای رفع مشکل تغییرات زیر را در فایل انجام دهید:

 

Line 370:

WAS:

if ($juri != '' && $juri != '/' && !eregi( "index\.php", $_SERVER['REQUEST_URI'] ) && !eregi( "index2\.php", $_SERVER['REQUEST_URI'] ) && !eregi( "/\?", $_SERVER['REQUEST_URI'] ) && $_SERVER['QUERY_STRING'] == '' ) {


BECOMES:

if ($juri != '' && $juri != '/' && !preg_match( "index\.php/i", $_SERVER['REQUEST_URI'] ) && !preg_match( "index2\.php/i", $_SERVER['REQUEST_URI'] ) && !preg_match( "/\?/i", $_SERVER['REQUEST_URI'] ) && $_SERVER['QUERY_STRING'] == '' ) {

-----------------------------------------
Line 388:

WAS:

if( $mosConfig_sef && $mosConfig_multilingual_support && $string!='index.php' && !eregi("^(([^:/?#]+):)",$string) && !strcasecmp(substr($string,0,9),'index.php') && !eregi('lang=', $string) ) {


BECOMES:

if( $mosConfig_sef && $mosConfig_multilingual_support && $string!='index.php' && !preg_match("^(([^:/?#]+):)/i",$string) && !strcasecmp(substr($string,0,9),'index.php') && !preg_match('lang=/i', $string) ) {

-----------------------------------------
Line 393:

WAS:

if ($mosConfig_sef && !eregi("^(([^:/?#]+):)",$string) && !strcasecmp(substr($string,0,9),'index.php')) {


BECOMES:

if ($mosConfig_sef && !preg_match("/^(([^\/:?#]+):)/i",$string) && !strcasecmp(substr($string,0,9),'index.php')) {

-----------------------------------------
Line 409:

WAS:

if (preg_match('@^[A-Za-z][A-Za-z0-9:_.-]*$@', $url['fragment'])) {


BECOMES:

if (preg_match('@^[A-Za-z][A-Za-z0-9:_.-]*$@/i', $url['fragment'])) {

-----------------------------------------
Line 533:

WAS:

eregi("^(https?:[\/]+[^\/]+)(.*$)", $mosConfig_live_site, $live_site_parts);


BECOMES:

preg_match("/^(https?:[\/]+[^\/]+)(.*$)/i", $mosConfig_live_site, $live_site_parts);

سورس:

جوملا 1.0 در php 5.3.0



:: برچسب‌ها: جوملا , php ,
:: بازدید از این مطلب : 453
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : پنج شنبه 15 مرداد 1394 | نظرات ()
نوشته شده توسط : طراحی سایت
چگونه می شود اگر شما خواستید وب سایت خود را در منزل میزبانی کنید؟ و آن به این دلیلی که شاید شما نمی خواهید بر روی میزبان وب صرف بیش از حد بگذارید و یا شما نتواستید یک شرکت میزبانی که تمام نیاز های شما را بر طرف کند پیدا کنید .
خوب اگر شما مانند اکثر کاربران اینترنت خانگی باشید و برای اتصال به اینترنت از یک مودم و یا خط DSL و یا کابل استفاده می کنید بنابراین به احتمال زیاد شما یک آدرس IP پویا ( dynamic ) خواهید داشت. هنگامی که شما به اینترنت متصل می شوید ISP شما یک IP آدرس برای مدت زمانی که شما به اینترنت متصل هستید به شما اختصاص می دهد هنگامی که شما دوباره به اینترنت متصل می شوید به شما یک آدرس IP مختلف اختصاص داده می شود و هر بار که متصل می شوید همین گونه میباشد ( اگر چه برخی از DSL یا کابل های ISP وجود دارد که با پرداخت اضافه به شما امکان داشتن استاتیک IP و یا آی پی بدون تغییر را خواهد داد ).
چه می شود اگر شما دارای یک IP پویا ( dynamic ) باشید؟
به طور کلی تغییر IP آدرس بر کاربر اینترنت معمولا تاثیر نمی گذارد. با این حال میزبانی وب سایت خود در خانه مشکل و پیچیده تر میباشد .چرا ؟ به خاطر اینکه راه اندازی سرور با استفاده از IP پویا ( dynamic ) دریافت کردن آن را برای مردم مشکل می سازد وهمچنین شما قادر نخواهید بود ip خود را به نام دامنه خود لینک کنید.
بنابراین شما چگونه دقیقا می توانید از این مشکل بگذرید؟
اینجاست که ارائه دهنده سرویس DDNS می آید . DDNS به عنوان یک روش برای نگهداری نام دامنه لینک شده به یک IP آدرس متغیر و یا آدرس پویا ( dynamic ip ) تعریف می شود.
بنابراین شرکتی که به کاربران اجازه می دهد تا در هر نقطه از اینترنت دنیا بتوانند وب سایت شما را پیدا کنند با وجود اینکه شما از  IP آدرس متغیر استفاده می کنید از این سرویس DDNS استفاده می کند . با پرداخت هزینه کم این گونه شرکت ها به کسانی که به اینترنت از طریق IP  آدرس پویا ( dynamic ) متصل می شود به آنها قدرت و اجازه استفاده از برنامه های کاربردی که نیاز به داشتن IP آدرس استاتیک  نقشه برداری در سطح سوم نام دامنه با IP  آدرسی که شما  انتخاب می کنید را می دهند و این شامل dynip.com , dyndns.com , dns2go.com میباشد. کامپیوتر راه دور شما می تواند یک IP آدرس جدید به DDNS هر زمانی که ISP اینترنت شما یک آدرس IP  اختصاص می دهد را فروارد کند.
این همان چیزی است که اتفاق می افتد:
مردم نام دامنه شما را در مرورگر خودشان تایپ می کنند
اتصال اینترنت DNS را میباید
DNS نام دامنه شما را در پایگاه داده خود نگاه می کند و درخواست را به یک IP آدرس مناسب ارسال می کند
اگر شما IP آدرس پویا ( dynamic ) داشته باشید در این حالت
DDNS صفحه درخواست شده را به IP آدرس فعلی شما می فرستد
کامپیوتر شما این درخواست را دریافت می کند
وب سرور شما این صفحه را به کامپیوتر کاربر و مروگر او می فرستد .
DDNS سرور سیستم تنها به جای میزبان متعدد برای یک وب سایت استفاده نمی شود آن همچنین از رکورهای MS ( Mail Exchange ) هم پشتیبانی می کند . آدرس مقصد یک رکورد MS باید یک نام دامنه باشد تا یک IP آدرس .
الان چگونه DDNS همه این IP آدرس های متغیر را پیگیری می کند؟
وارد برنامه سرویس کاربری DDNS شوید. این برنامه معمولا توسط شرکت ارائه دهنده سرویس DDNS ارائه می شود و این برنامه به طور خودکار آدرسی که به آن فرستاده می شود را بروز رسانی می کند. آن به طور مداوم بر شماره IP کامپیوتر شما نظارت می کند و هنگامی که IP آدرس شما تغیر می کند به سرویس DDNS اطلاع رسانی می کند . هنگامی که تغییر بوجود آید این نرم افزار به صورت خودکار به کامپیوتر سرویس DDNS با استفاده از نام کاربری و رمز عبور شما وارد می شود و لیست شما را به IP آدرس جدید بروز رسانی می کند.
البته اگر شما حداقل یک IP آدرس استاتیک در هر جایی بروی شبکه عمومی داشته باشید می توانید سیستم خود را به جای آن با استفاده از زبان های برنامه نویسی مختلف ایجاد کنید.
سورس:


:: برچسب‌ها: طراحی سایت, برنامه نویسی پرتال , برنامه نویسی سایت , هاست خارجی , هاست , هاستینگ , فروش هاست , فروش هاستینگ , خرید هاستینگ , خرید هاست , هاستینگ خارجی , تبلیغ اینترنتی , خرید اینترنتی , فروشگاه , فروشگاه اینترنتی , سرور ,
:: بازدید از این مطلب : 438
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : چهار شنبه 7 مرداد 1394 | نظرات ()