Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.22 »   Переход на PHP 5.3
RSS

Переход на PHP 5.3

Текущий рейтинг темы: Нет
Выводить сообщения

<<Назад  Вперед>>Страницы: 1 * 2
Модераторы: aerograf, wsx
Печать
 
aerograf
Модератор форума

aerograf
Всего сообщений: 486
Рейтинг пользователя: 15


Ссылка


Дата регистрации на форуме:
29 дек. 2007
The WishMaster спасибо. Посмотрим как будет работать. Не всегда есть возможность и условия для тестирования проблем с новым ПО...

Dearheart
Почетный участник


Откуда: Нижний Новгород
Всего сообщений: 130
Рейтинг пользователя: 4


Ссылка


Дата регистрации на форуме:
27 дек. 2007

The WishMaster написал:
[q]
Еще вот такое:

GLOBAL FORUM ERROR: main.php (line 112) - Parameter 1 to stdforum_title() expected to be a reference, value given
[/q]


По этой же причине могут не показываються разделы.

Это всё из-за такого исправления:
[q]
call_user_func($fdata['tp_template']."_title",&$fdata);
[/q]

php5.3 b выше не разрешают передавать массив по ссылке. У меня заработало вот такое решение - передаём массив через промежуточную переменную, меняем строку выше на две такие строки:
$tempdata = &$fdata;
call_user_func($fdata['tp_template']."_title",$tempdata);
В таком виде мы передаём уже не ссылку, а переменную внутри которой сидит ссылка.
Мне кажется что в коде ещё есть места, где массив передаётся по ссылке - их все нужно поменять на эту контрукцию.

---
Форум для родителей детей с ВПС: http://forum.dearheart.ru
Florell
Новичок


Всего сообщений: 16
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 нояб. 2011
Пришлось переезжать на другой хостинг, а там оказалась версия 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
После перехода на 5.3 появилась ошибка: Function split() is deprecated (8192)

было
list($Username, $Domain) = split("@",$Email);

заменил на
list($Username, $Domain) = explode("@",$Email);

Похоже split старинная конструкция.
aerograf
Модератор форума

aerograf
Всего сообщений: 486
Рейтинг пользователя: 15


Ссылка


Дата регистрации на форуме:
29 дек. 2007

assessor написал:
[q]
Похоже split старинная конструкция.
[/q]

Устаревшая. В последнем исправлении добавляю комментарии в файлы, где необходимо изменить.
Если где находите, говорите. Все ошибки не сразу найдешь....
http://intboard.ru/post/suppor...tm#pp16277

assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
В админке /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
Модератор форума

aerograf
Всего сообщений: 486
Рейтинг пользователя: 15


Ссылка


Дата регистрации на форуме:
29 дек. 2007
Заменить ereg_replace() на preg_replace(), изменив синтаксис регулярного выражения.

assessor написал:
[q]
// ereg_replace(";",",",$unames); ------------ старая конструкция
str_replace(";",",",$unames); // заменил на аналог
[/q]

Ну или как то так...
Внесу комментарии. Спасибо.

assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007

aerograf написал:
[q]
Заменить ereg_replace() на preg_replace(), изменив синтаксис регулярного выражения.
[/q]

В учебнике написано
[q]
Если не нужны сложные правила поиска/замены, использование этой функции str_replace () предпочтительнее ereg_replace() или preg_replace().
[/q]

А у нас простые правила. Тем более, простая замена ereg_replace(";",",",$unames); на preg_replace(";",",",$unames); у меня не пошла. А поскольку изучать регулярку лень, сделал по-простому.
aerograf
Модератор форума

aerograf
Всего сообщений: 486
Рейтинг пользователя: 15


Ссылка


Дата регистрации на форуме:
29 дек. 2007
Ну менять в сборке выражения пока не буду. Пишу везде комментарии, где надо поменять, если не работает.

assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
Пригодиться

СТАРЫЕ ФУНКЦИИ

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
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0459. Количество выполненных запросов: 18, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!