سازگار نمودن مامبو 4.6.5 با PHP 5.3: تفاوت بین نسخه‌ها   

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری، جستجو
(حل مشکل مامبو و PHP 5.3, سازگار شدن مامبو 4.6.5 با PHP 5.3)
 
 
سطر ۱۲: سطر ۱۲:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
class mosDBTable extends mosDBAbstractRow {
 
class mosDBTable extends mosDBAbstractRow {
 
     /** @var mosDatabase Database connector */
 
     /** @var mosDatabase Database connector */
سطر ۲۳: سطر ۲۲:
 
     */
 
     */
 
     function queryTestFailure () {
 
     function queryTestFailure () {
</pre>
 
</code>
 
</div>
 
  
 +
</source>
  
 
و به شکل زیر دگرگون نمایید.
 
و به شکل زیر دگرگون نمایید.
  
  
 +
<source lang="php">
  
<div dir=ltr>
 
<code>
 
<pre>
 
 
class mosDBTable extends mosDBAbstractRow {
 
class mosDBTable extends mosDBAbstractRow {
 
     /** @var mosDatabase Database connector */
 
     /** @var mosDatabase Database connector */
سطر ۴۷: سطر ۴۲:
 
     */
 
     */
 
     function queryTestFailure () {
 
     function queryTestFailure () {
</pre>
+
 
</code>
+
</source>
</div>
+
  
 
=خطای Parameter 2 to frontpage()=
 
=خطای Parameter 2 to frontpage()=
سطر ۵۹: سطر ۵۳:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
function call()
 
function call()
 
{
 
{
 
     $arguments = func_get_args();
 
     $arguments = func_get_args();
</pre>
 
</code>
 
</div>
 
  
 +
</source>
  
 
و به شکل زیر دگرگون نمایید.
 
و به شکل زیر دگرگون نمایید.
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
function call()
 
function call()
 
{
 
{
سطر ۸۴: سطر ۷۴:
 
         $arguments[$i] = &$arguments[$i];
 
         $arguments[$i] = &$arguments[$i];
 
     }   
 
     }   
</pre>
 
</code>
 
</div>
 
  
 +
</source>
  
 
===رفع عیب‌های احتمالی===
 
===رفع عیب‌های احتمالی===
سطر ۹۳: سطر ۸۱:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
E_ALL & ~E_STRICT & ~E_DEPRECATED
 
E_ALL & ~E_STRICT & ~E_DEPRECATED
</pre>
 
</code>
 
</div>
 
  
 +
</source>
  
 
'''توجه''' : سرورهایی که CGI ران شده باشند و دسترسی روت به یوزر داده شده باشد قابلیت ایجاد و ویرایش این فایل را خواهند داشت. در غیر اینصورت مدیریت سرور وظیفه دارد این تغییر را اعمال نماید
 
'''توجه''' : سرورهایی که CGI ران شده باشند و دسترسی روت به یوزر داده شده باشد قابلیت ایجاد و ویرایش این فایل را خواهند داشت. در غیر اینصورت مدیریت سرور وظیفه دارد این تغییر را اعمال نماید
سطر ۱۳۷: سطر ۱۲۲:
 
برای رفع خطا در فایل Mambo_Path/includes/vcard.class.php باید قبل از خط 36:
 
برای رفع خطا در فایل Mambo_Path/includes/vcard.class.php باید قبل از خط 36:
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
// taken from PHP documentation comments
 
// taken from PHP documentation comments
 
function quoted_printable_encode($input, $line_max = 76) {
 
function quoted_printable_encode($input, $line_max = 76) {
</pre>
+
 
</code>
+
</source>
</div>
+
  
 
از دستور زیر  استفاده کنید.
 
از دستور زیر  استفاده کنید.
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
 
<pre>
+
 
if(!function_exists('quoted_printable_encode'))
 
if(!function_exists('quoted_printable_encode'))
 
{
 
{
سطر ۱۵۹: سطر ۱۴۱:
 
   }
 
   }
 
}
 
}
</pre>
 
</code>
 
</div>
 
  
 +
</source>
  
 
'''ضمناً باید کمی دقت شود که شروع دستور در کجا به پایان برسد و با <nowiki>{</nowiki> پایان دستور اعلام شود'''
 
'''ضمناً باید کمی دقت شود که شروع دستور در کجا به پایان برسد و با <nowiki>{</nowiki> پایان دستور اعلام شود'''
سطر ۱۷۱: سطر ۱۵۱:
  
 
تهیه شده توسط [http://www.mambolearn.com/forum/index.php?action=profile;u=13056 محمد محسنی]
 
تهیه شده توسط [http://www.mambolearn.com/forum/index.php?action=profile;u=13056 محمد محسنی]
 +
  
 
{{کپی رایت}}
 
{{کپی رایت}}
  
 
[[رده:کدنویسی و گسترش مامبو]]
 
[[رده:کدنویسی و گسترش مامبو]]

نسخهٔ کنونی تا ‏۱۶ آوریل ۲۰۱۱، ساعت ۱۷:۱۲

مقدمه

بعد از بروز شدن PHP برخی از سرور‌ها به 5.3 PHP ، سایت‌هایی که با مامبو طراحی شده‌اند با مشکلاتی روبرو خواهند بود. در این مقاله مشکلات را با تغییر در کدنویسی‌های مامبو حل خواهیم نمود.

خطای مربوط به mosDBTable()

Fatal error: Call to undefined method mosMenu::mosDBTable() in /home/***/public_html/***/includes/core.classes.php on line 899

رفع خطای مربوط به mosDBTable()

برای رفع خطا فایل Mambo_Path/includes/database.php را با یک ویرایشگر استاندارد باز کنید. خطوط 783 الی 790 را پیدا کنید.


<source lang="php">

class mosDBTable extends mosDBAbstractRow {

   /** @var mosDatabase Database connector */
   var $_db = null;
   /**
    *    @return bool True if DB query failed.  Sets the error message
    */
   function queryTestFailure () {

</source>

و به شکل زیر دگرگون نمایید.


<source lang="php">

class mosDBTable extends mosDBAbstractRow {

   /** @var mosDatabase Database connector */
   var $_db = null;
   function mosDBTable ($table=, $keyname='id', $db=) {
       $this->mosDBAbstractRow($table, $keyname, $db);
   }
   /**
    *    @return bool True if DB query failed.  Sets the error message
    */
   function queryTestFailure () {

</source>

خطای Parameter 2 to frontpage()

Warning: Parameter 2 to frontpage() expected to be a reference, value given in /home/***/public_html/***/includes/Cache/Lite/Function.php on line 100

رفع خطای Parameter 2 to frontpage()

برای رفع خطا فایل Mambo_Path/includes/Cache/Lite/Function.php را با یک ویرایشگر استاندارد باز کنید. خطوط 72 الی 74 را پیدا کنید.


<source lang="php">

function call() {

   $arguments = func_get_args();

</source>

و به شکل زیر دگرگون نمایید.


<source lang="php">

function call() {

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

</source>

رفع عیب‌های احتمالی

اگر مشکل پابرجا بود، کد زیر را در PHP.ini قرار دهید.


<source lang="php">

E_ALL & ~E_STRICT & ~E_DEPRECATED

</source>

توجه : سرورهایی که CGI ران شده باشند و دسترسی روت به یوزر داده شده باشد قابلیت ایجاد و ویرایش این فایل را خواهند داشت. در غیر اینصورت مدیریت سرور وظیفه دارد این تغییر را اعمال نماید

همچنین در صورتی که خطای زیر و یا مشابه خطای زیر بوجود آمد!


Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 424

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 2907

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 601

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 602

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 603

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 604

Warning: Cannot modify header information - headers already sent by (output started at /home/***/public_html/***/includes/database.php:2273) in /home/***/public_html/***/includes/core.classes.php on line 605


در انتهای فایل Mambo_Path/includes/database.php در خط 1134 فضای اضافی رو حذف نمایید تا در انتهای کدها تنها عبارت <? نمایش داده شود.

مشکل قسمت تماس با ما

در قسمت تماس با ما خطای زیر وجود خواهد داشت.

Fatal error: Cannot redeclare quoted_printable_encode() in /home/***/public_html/includes/vcard.class.php on line 36

رفع مشکل قسمت تماس با ما

برای رفع خطا در فایل Mambo_Path/includes/vcard.class.php باید قبل از خط 36:

<source lang="php">

// taken from PHP documentation comments function quoted_printable_encode($input, $line_max = 76) {

</source>

از دستور زیر استفاده کنید.


<source lang="php">

if(!function_exists('quoted_printable_encode')) {

 function quoted_printable_encode($input, $line_max=76, $space_conv=false)
 {
   /* ... */
 }

}

</source>

ضمناً باید کمی دقت شود که شروع دستور در کجا به پایان برسد و با { پایان دستور اعلام شود


Remembrance.png
توجه : قبل از ایجاد هرگونه تغییر در سورس، حتما نسخه پشتیبان تهیه نمایید.

تیم مامبولرن مسئولیتی در قبال مشکلات ناشی از اعمال نادرست این کدها نخواهد داشت.


تهیه شده توسط محمد محسنی


8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.