سازگار نمودن مامبو 4.6.5 با PHP 5.3: تفاوت بین نسخهها
(حل مشکل مامبو و PHP 5.3, سازگار شدن مامبو 4.6.5 با PHP 5.3) |
|||
| سطر ۱۲: | سطر ۱۲: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
class mosDBTable extends mosDBAbstractRow { | class mosDBTable extends mosDBAbstractRow { | ||
/** @var mosDatabase Database connector */ | /** @var mosDatabase Database connector */ | ||
| سطر ۲۳: | سطر ۲۲: | ||
*/ | */ | ||
function queryTestFailure () { | function queryTestFailure () { | ||
| − | |||
| − | |||
| − | |||
| + | </source> | ||
و به شکل زیر دگرگون نمایید. | و به شکل زیر دگرگون نمایید. | ||
| + | <source lang="php"> | ||
| − | |||
| − | |||
| − | |||
class mosDBTable extends mosDBAbstractRow { | class mosDBTable extends mosDBAbstractRow { | ||
/** @var mosDatabase Database connector */ | /** @var mosDatabase Database connector */ | ||
| سطر ۴۷: | سطر ۴۲: | ||
*/ | */ | ||
function queryTestFailure () { | function queryTestFailure () { | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
=خطای Parameter 2 to frontpage()= | =خطای Parameter 2 to frontpage()= | ||
| سطر ۵۹: | سطر ۵۳: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
function call() | function call() | ||
{ | { | ||
$arguments = func_get_args(); | $arguments = func_get_args(); | ||
| − | |||
| − | |||
| − | |||
| + | </source> | ||
و به شکل زیر دگرگون نمایید. | و به شکل زیر دگرگون نمایید. | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
function call() | function call() | ||
{ | { | ||
| سطر ۸۴: | سطر ۷۴: | ||
$arguments[$i] = &$arguments[$i]; | $arguments[$i] = &$arguments[$i]; | ||
} | } | ||
| − | |||
| − | |||
| − | |||
| + | </source> | ||
===رفع عیبهای احتمالی=== | ===رفع عیبهای احتمالی=== | ||
| سطر ۹۳: | سطر ۸۱: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
E_ALL & ~E_STRICT & ~E_DEPRECATED | E_ALL & ~E_STRICT & ~E_DEPRECATED | ||
| − | |||
| − | |||
| − | |||
| + | </source> | ||
'''توجه''' : سرورهایی که CGI ران شده باشند و دسترسی روت به یوزر داده شده باشد قابلیت ایجاد و ویرایش این فایل را خواهند داشت. در غیر اینصورت مدیریت سرور وظیفه دارد این تغییر را اعمال نماید | '''توجه''' : سرورهایی که CGI ران شده باشند و دسترسی روت به یوزر داده شده باشد قابلیت ایجاد و ویرایش این فایل را خواهند داشت. در غیر اینصورت مدیریت سرور وظیفه دارد این تغییر را اعمال نماید | ||
| سطر ۱۳۷: | سطر ۱۲۲: | ||
برای رفع خطا در فایل Mambo_Path/includes/vcard.class.php باید قبل از خط 36: | برای رفع خطا در فایل Mambo_Path/includes/vcard.class.php باید قبل از خط 36: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// 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) { | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
از دستور زیر استفاده کنید. | از دستور زیر استفاده کنید. | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
if(!function_exists('quoted_printable_encode')) | if(!function_exists('quoted_printable_encode')) | ||
{ | { | ||
| سطر ۱۵۹: | سطر ۱۴۱: | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
| − | |||
| + | </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()
رفع خطای مربوط به 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()
رفع خطای 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>
ضمناً باید کمی دقت شود که شروع دستور در کجا به پایان برسد و با { پایان دستور اعلام شود
تیم مامبولرن مسئولیتی در قبال مشکلات ناشی از اعمال نادرست این کدها نخواهد داشت.
تهیه شده توسط محمد محسنی
|
|