Intellect Board — cистема управления сайтомПостроение сайта на основе форума |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.22 » Переход на PHP 5.3 |
<<Назад Вперед>> | Страницы: 1 * 2 Модераторы: aerograf, wsx | Печать |
aerograf
Модератор форума
Всего сообщений: 486 Рейтинг пользователя: 15 Ссылка Дата регистрации на форуме: 29 дек. 2007 |
The WishMaster спасибо. Посмотрим как будет работать. Не всегда есть возможность и условия для тестирования проблем с новым ПО... |
Dearheart
Почетный участник
Откуда: Нижний Новгород Всего сообщений: 130 Рейтинг пользователя: 4 Ссылка Дата регистрации на форуме: 27 дек. 2007 |
The WishMaster написал: Еще вот такое: По этой же причине могут не показываються разделы. Это всё из-за такого исправления: call_user_func($fdata['tp_template']."_title",&$fdata); php5.3 b выше не разрешают передавать массив по ссылке. У меня заработало вот такое решение - передаём массив через промежуточную переменную, меняем строку выше на две такие строки: $tempdata = &$fdata; call_user_func($fdata['tp_template']."_title",$tempdata); В таком виде мы передаём уже не ссылку, а переменную внутри которой сидит ссылка. Мне кажется что в коде ещё есть места, где массив передаётся по ссылке - их все нужно поменять на эту контрукцию. ---
Форум для родителей детей с ВПС: http://forum.dearheart.ru |
Florell |
Пришлось переезжать на другой хостинг, а там оказалась версия 5.3. Потихоньку ковыряю форум, вернул отображение разделов. Однако заметил, что еще вырубилась функция бэкапа базы из-под админки: GLOBAL ADMIN ERROR: 8192 (Function mysql_list_tables() is deprecated line 166) Function mysql_list_tables() is deprecated |
assessor
Долгожитель форума
Всего сообщений: 495 Рейтинг пользователя: 14 Ссылка Дата регистрации на форуме: 13 фев. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 28 января 2014 12:57 Сообщение отредактировано: 28 января 2014 12:58
После перехода на 5.3 появилась ошибка: Function split() is deprecated (8192) было list($Username, $Domain) = split("@",$Email); заменил на list($Username, $Domain) = explode("@",$Email); Похоже split старинная конструкция. |
aerograf
Модератор форума
Всего сообщений: 486 Рейтинг пользователя: 15 Ссылка Дата регистрации на форуме: 29 дек. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 29 января 2014 9:58 Сообщение отредактировано: 29 января 2014 10:03 assessor написал: Похоже split старинная конструкция. Устаревшая. В последнем исправлении добавляю комментарии в файлы, где необходимо изменить. Если где находите, говорите. Все ошибки не сразу найдешь.... http://intboard.ru/post/suppor...tm#pp16277 |
assessor
Долгожитель форума
Всего сообщений: 495 Рейтинг пользователя: 14 Ссылка Дата регистрации на форуме: 13 фев. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 31 января 2014 14:27 Сообщение отредактировано: 31 января 2014 15:05
В админке /admin/user.php, при замене у Пользователя УРОВНЯ ДОСТУПА, выходит ошибка GLOBAL ADMIN ERROR: 8192 (Function ereg_replace() is deprecated line 55) Function ereg_replace() is deprecated function u_setlevel() { check_post(); global $link; $unames = getvar("unames"); if (!$unames) error(MSG_e_ad_nouser); // ereg_replace(";",",",$unames); ------------ старая конструкция str_replace(";",",",$unames); // заменил на аналог |
aerograf
Модератор форума
Всего сообщений: 486 Рейтинг пользователя: 15 Ссылка Дата регистрации на форуме: 29 дек. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 31 января 2014 14:56 Сообщение отредактировано: 31 января 2014 14:58
Заменить ereg_replace() на preg_replace(), изменив синтаксис регулярного выражения. assessor написал: // ereg_replace(";",",",$unames); ------------ старая конструкция Ну или как то так... Внесу комментарии. Спасибо. |
assessor
Долгожитель форума
Всего сообщений: 495 Рейтинг пользователя: 14 Ссылка Дата регистрации на форуме: 13 фев. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 31 января 2014 15:09 Сообщение отредактировано: 31 января 2014 15:16 aerograf написал: Заменить ereg_replace() на preg_replace(), изменив синтаксис регулярного выражения. В учебнике написано Если не нужны сложные правила поиска/замены, использование этой функции str_replace () предпочтительнее ereg_replace() или preg_replace(). А у нас простые правила. Тем более, простая замена ereg_replace(";",",",$unames); на preg_replace(";",",",$unames); у меня не пошла. А поскольку изучать регулярку лень, сделал по-простому. |
aerograf
Модератор форума
Всего сообщений: 486 Рейтинг пользователя: 15 Ссылка Дата регистрации на форуме: 29 дек. 2007 |
Ну менять в сборке выражения пока не буду. Пишу везде комментарии, где надо поменять, если не работает. |
assessor
Долгожитель форума
Всего сообщений: 495 Рейтинг пользователя: 14 Ссылка Дата регистрации на форуме: 13 фев. 2007 |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 31 января 2014 15:22 Сообщение отредактировано: 31 января 2014 15:23
Пригодиться СТАРЫЕ ФУНКЦИИ call_user_method() (следует использовать call_user_func() ) call_user_method_array() (следует использовать call_user_func_array()) define_syslog_variables() dl() ereg() (следует использовать preg_match()) ereg_replace() (следует использовать preg_replace()) eregi() (следует использовать preg_match() с модефикатором ‘i’) eregi_replace() (следует использовать preg_replace() с модификатором ‘i’ ) set_magic_quotes_runtime() magic_quotes_runtime() session_register() (следует использовать $_SESSION ) session_unregister() (следует использовать $_SESSION ) session_is_registered() (следует использовать $_SESSION ) set_socket_blocking() (следует использовать stream_set_blocking() ) split() (следует использовать preg_split() ) spliti() (следует использовать preg_split() с модификатором ‘i’ ) sql_regcase() mysql_db_query() (следует использовать mysql_select_db() и mysql_query() ) mysql_escape_string() (следует использовать mysql_real_escape_string() ) Аварийный, временный вариант, включить в php 5.3 принудительно старые функции, НО НОВЫЕ НЕ БУДУТ РАБОТАТЬ. Открываем файл настройки PHP (php.ini) и ищем, ближе к самому концу файла, текст: ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ; http: //php. net/mbstring.func-overload ; mbstring.func_overload = 0 0 – Оставить все без изменений. 1-4 Включить одну из функций. 7 – Включить сразу все функции. Все это пишется в нижней строке, притом, главное, не забудьте убрать символ “;” в начале строки. Т.е. если Вы хотите, что бы были включены все функции, то нижняя строка примет вид: mbstring.func_overload = 7 |
<<Назад Вперед>> | Страницы: 1 * 2 Модераторы: aerograf, wsx | Печать |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.22 » Переход на PHP 5.3 |
1 посетитель просмотрел эту тему за последние 10 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
Ограничение доступа не отображаются разделы Архив версий Установка стиля на Intellect Board 2.22 Завершилась работа над новой версией 3.00 |
Самые активные 5 тем | |