Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: После обновления версии php перестал работать скрипт
 
 автор: flider   (11.03.2008 в 14:02)   письмо автору
 
 

Добрый день!
Не поможет ли многоуважаемый all. Я не большой специалист в php, а решить проблему надо.
Хостер обновил версию php до 5.2.5 и перестал работать скрипт. Выдает ошибку
PHP Fatal error: Cannot redeclare renumber_order() in /home/u16888/forestforum.ru/www/admin/admin_mx_menu.php on line 119

Это функция
function renumber_order($mode, $cat = 0)
{
global $db, $portalpage;

switch($mode)
{
case 'category':
$table = MENU_CAT_TABLE;
$idfield = 'cat_id';
$orderfield = 'cat_order';
$cat = 0;
break;

case 'menu':
$table = MENU_NAV_TABLE;
$idfield = 'menu_id';
$orderfield = 'menu_order';
$catfield = 'cat_id';
break;

default:
mx_message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__);
break;
}

$sql = "SELECT * FROM " . $table;
if( $cat != 0)
{
$sql .= " WHERE " . $catfield . " = $cat";
}
$sql .= " ORDER BY " . $orderfield . " ASC";


if( !$result = $db->sql_query($sql) )
{
mx_message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql);
}

$i = 10;
$inc = 10;

while( $row = $db->sql_fetchrow($result) )
{
$sql = "UPDATE " . $table .
" SET " . $orderfield . " = " . $i .
" WHERE " . $idfield . " = " . $row[$idfield];
if( !$db->sql_query($sql) )
{
mx_message_die(GENERAL_ERROR, "Couldn't update order fields", "", __LINE__, __FILE__, $sql);
}
$i += 10;
}

}

Некоторое время назад из-за обновления была некая проблема. Выяснилось, что в новой версии появилось некое новое служебное слово, которое использовалось в скрипте в качестве переменной. Переименовали - и все стало в порядке.
А тут что за фишка?

Спасибо.

   
 
 автор: mihdan   (11.03.2008 в 14:47)   письмо автору
 
   для: flider   (11.03.2008 в 14:02)
 

Возможно, проблемы с классом по работе с SQL

   
 
 автор: cheops   (11.03.2008 в 15:02)   письмо автору
 
   для: flider   (11.03.2008 в 14:02)
 

Если файл содержит объявление функции постарайтесь использовать для его включения include_once() вместо include() и require_once() вместо require(). Ошибка сообщает что зафиксирована попытка повторного объявления функции renumber_order() - вряд ли такая функция имеется в составе какого-то расширения, однако вы можете получить список всех предопределённых функций при помощи функци get_defined_functions().

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования