Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > PHP

Ответ
 
Опции темы Опции просмотра
pan вне форума pan
): ǝҺɐни dиw ɐн иd⊥оwɔ

Аватар для pan

| Цитировать Старый #1 11-23-2014, 05:47

Всем превед, камрады!
Скажите, а есть ли быстрый способ узнать и заменить все устаревшие функции php
в двиге? Скажем версия рони 1.4 и php 5.4?


Напильник для RUNCMS
Строим помаленьку
Для гурманов
Мебель для дома
Посетить домашнюю страницу pan
  Сообщения: 4,777 c 15.03.2004 | Репутация: 121
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #2 11-23-2014, 08:06

Для PHP 5.4

Во-первых в файле /include/common.php в самом начале (допустим, после error_reporting())

добавляем

PHP код:
define('RCX_ENT_ENCODING''ISO-8859-1'); // Encoding htmlspecialchars() and htmlentities() in PHP 5.4 
define('RCX_ENT_FLAGS'ENT_COMPAT ENT_HTML401); // Flags  htmlspecialchars() and htmlentities() in PHP 5.4 
потом ищем во всех файлах все htmlentities() и htmlspecialchars() и добавляем третьим параметром RCX_ENT_ENCODING (если нет второго параметра, то ставим - RCX_ENT_FLAGS)

т.е. например было:

PHP код:
htmlspecialchars($text); 
меняем на

PHP код:
htmlspecialchars($textRCX_ENT_FLAGSRCX_ENT_ENCODING); 
то же самое с htmlentities()

---

Во-вторых удалить функции session_register() и

в файле /modules/system/admin/preferences/preferences.php

PHP код:
session_unregister($old_session_name); 
заменить на

PHP код:
unset($_SESSION[$_POST['old_session_name']]); 
Вообще, если где то в сторонних модулях использовалась session_unregister('имя') заменить ее на unset($_SESSION['имя'])

---

Это для того, чтобы движок просто корректно работал на PHP 5.4. А убрать именно устаревшие (но работающие) функции быстро не получится - в первую очередь смотрим: https://php.net/manual/ru/migration53.deprecated.php


----

Ну, и не забываем во всех файлах mysql.sql заменить TYPE=MyISAM; на ENGINE=MyISAM; для поддержки MySQL 5.5.11 и выше
Оценка сообщения (репутация)
+5 Taurus положительно:

Последний раз редактировалось LARK, 11-23-2014 в 08:50


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,183 c 20.09.2003 | Репутация: 223
pan вне форума pan
): ǝҺɐни dиw ɐн иd⊥оwɔ

Аватар для pan

| Цитировать Старый #3 11-23-2014, 18:56

Я прощу прощения, это для 2.2
Скажем в 1.4 (я указал версию в первом посте) нет session_register


Напильник для RUNCMS
Строим помаленьку
Для гурманов
Мебель для дома
Посетить домашнюю страницу pan
  Сообщения: 4,777 c 15.03.2004 | Репутация: 121
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #4 11-23-2014, 20:39

Цитата:
Сообщение от pan Посмотреть сообщение
Я прощу прощения, это для 2.2
Скажем в 1.4 (я указал версию в первом посте) нет session_register
Но это не отменяет модификацию htmlentities() и htmlspecialchars(), так как без этого нормальной работы в PHP 5.4 не будет (это относится ко всем без исключения версиям).

P.S.

В стандартном дистрибутиве 1.4 есть как session_register() - в /class/sessions.class.php (смотреть в методе XoopsUserSession::setCook()), так и session_unregister() в
/modules/system/admin/preferences/preferences.php (смотреть в самом конце файла)

P.P.S.

Ну и для стандартной 1.4 надо заменять все переменные типа $HTTP_*_VARS на соответствующие суперглобальные массивы. В PHP 5.4 удалена опция register_long_arrays

Последний раз редактировалось LARK, 11-24-2014 в 07:25


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,183 c 20.09.2003 | Репутация: 223
pan вне форума pan
): ǝҺɐни dиw ɐн иd⊥оwɔ

Аватар для pan

| Цитировать Старый #5 11-24-2014, 12:00

Мерси


Напильник для RUNCMS
Строим помаленьку
Для гурманов
Мебель для дома
Посетить домашнюю страницу pan
  Сообщения: 4,777 c 15.03.2004 | Репутация: 121
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #6 11-24-2014, 18:07

К слову, PHP 5.4 очень хорошо оптимизирован. Память будет практически в два раза меньше кушать, и страницы намного быстрее будут собираться.


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,183 c 20.09.2003 | Репутация: 223
ZlydenGL вне форума ZlydenGL
Напильникъ - наше все

Аватар для ZlydenGL

| Цитировать Старый #7 11-26-2014, 11:28

Цитата:
Сообщение от LARK Посмотреть сообщение
если где то в сторонних модулях использовалась session_unregister('имя') заменить ее на unset($_SESSION['имя'])
А почему бы просто не определить фукнцию session_unregister, внутри которой определять, есть ли в системе одноименная встроенная функция, и если ее нет - переводить стрелки на unset? ИМХО это проще, чем менять все записи, да и правки потребует только core.


Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник.
  Сообщения: 777 c 22.09.2008 | Репутация: 92
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #8 11-26-2014, 18:27

В стандартном дистрибутиве нетрудно две строки подправить. Смысл писать отдельную функцию для совместимости, имеет только если на сайте большое количество модулей и стороннего кода с наличием большого количества этих удаленных функций.


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,183 c 20.09.2003 | Репутация: 223
DarkL вне форума DarkL
Младший участник


| Цитировать Старый #9 01-23-2015, 03:27

Ребята, подскажите, переехал на новый хостинг.

Всё сделал как здесь описано, но осталась одна проблема, авторизация не проходит, при этом приветствие наблюдаю (Здравствуйте! Вы вошли в систему.)

Версия: 1.5
chmod-ом прошелся
mainfile в разных варианциях перепробовал
php.ini сверил
Старый хостинг: Windows, PHP 5.2.6, Apache/2.2.11, MySQL 5.1.37
Новый хостинг: CentOS 6.6, PHP 5.4.36, Apache/2.2.15, MySQL 5.5.41

Последний раз редактировалось DarkL, 01-23-2015 в 03:34

  Сообщения: 16 c 16.11.2006 | Репутация: 2
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #10 01-23-2015, 20:33

Цитата:
Сообщение от DarkL Посмотреть сообщение
Ребята, подскажите, переехал на новый хостинг.
Всё сделал как здесь описано, но осталась одна проблема, авторизация не проходит, при этом приветствие наблюдаю (Здравствуйте! Вы вошли в систему.)
Ошибки какие либо выводит? В логах ошибок на сервере что-нибудь есть?


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,183 c 20.09.2003 | Репутация: 223
Ответ

Метки
5.4, php, функции

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2018, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 92.96 Kb. compressed to 85.40 Kb. by saving 7.56 Kb. (8.13%)
Page generated in 0.07606 seconds with 10 queries