Ошибка php при регистрации: Deprecated: preg_replace() - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

php 5.4

Страница 1 из 1

Ошибка php при регистрации: Deprecated: preg_replace()

#1 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 20 Январь 2016 - 04:40

После последнего обновления до 3.4.9 заметил сразу после сабмита при регистрации нового пользователя на сайте следующую ошибку (часть серверного пути вырезана). Можно ли как-то вылечить или нужно писать в саппорт?
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 20 Январь 2016 - 08:50

http://php.net/manua...reg-replace.php

Цитата

Список изменений

Версия Описание
5.5.0 Модификатор /e теперь считается устаревшим. Используйте функцию preg_replace_callback(). Смотрите документацию PREG_REPLACE_EVAL с дополнительной информацией и описанием проблем с безопасностью.

Либо делайте замену функций, либо понижайте версию php.
0

#3 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 20 Январь 2016 - 11:07

А что такое "делайте замену функции"? Это по всему сайту в тысячах файлов что-то менять, либо в одном каком-то файле что-то поменять?
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 698
  • Регистрация: 20-Март 09
  • Репутация: 2 262
  • IPB version:3.1.x
 

Отправлено 20 Январь 2016 - 11:42

У вас указан файл и номер строки в ошибке.

Все ошибки пожалуйста приводим текстом.
1

#5 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 20 Январь 2016 - 12:38

Стоит версия 5.5 php. В php.ini и htaccess отображение таких ошибок выключено. Задал поиск по error_reporting. Ниже список файлов. Где отключить вывод таких ошибок при регистрации пользователя?
0

#6 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 20 Январь 2016 - 12:54

Вот текст ошибки:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4861
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4864
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4867
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4861
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4864
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in пропущено/a108.net/admin/sources/base/core.php on line 4867


В указанных строках находится след. код:

	public static function utf8ToEntities($string)
	{ 
		/*
 		 * @see http://en.wikipedia.org/wiki/UTF-8#Description
 		 * @link http://community.invisionpower.com/tracker/issue-23681-possible-addition/
 		 */
		# Four-byte chars
		$string = preg_replace( "/([\360-\364])([\200-\277])([\200-\277])([\200-\277])/e",  "'&#' . ( ( ord('\\1') - 240 ) * 262144 + ( ord('\\2') - 128 ) * 4096 + ( ord('\\3') - 128 ) * 64 + ( ord('\\4') - 128 ) ) . ';'", $string );
        
    	/* Three byte chars */
		$string = preg_replace( "/([\340-\357])([\200-\277])([\200-\277])/e", "'&#'.((ord('\\1')-224)*4096 + (ord('\\2')-128)*64 + (ord('\\3')-128)).';'", $string ); 

    	/* Two byte chars */
		$string = preg_replace("/([\300-\337])([\200-\277])/e", "'&#'.((ord('\\1')-192)*64+(ord('\\2')-128)).';'", $string); 

    	return $string; 
	}
	


Для указанной версии 3.4.9 используется пхп 5.5.
0

#7 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 20 Январь 2016 - 14:46

Что проще: отключить вывод этой ошибки или исправить функцию? Дайте любой рабочий вариант для данного конкретного случая, пожалуйста.
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 698
  • Регистрация: 20-Март 09
  • Репутация: 2 262
  • IPB version:3.1.x
 

Отправлено 21 Январь 2016 - 00:52

Проще отключить, естественно. Но исправить нужно, иначе этот код в последующих обновлениях php станет не рабочим. Исправить можно просто переписав под preg_replace_callback

    public static function utf8ToEntities($string)
    { 
        /*
         * @see http://en.wikipedia.org/wiki/UTF-8#Description
         * @link http://community.invisionpower.com/tracker/issue-23681-possible-addition/
         */
        # Four-byte chars
        $string = preg_replace_callback( "/([\360-\364])([\200-\277])([\200-\277])([\200-\277])/",  function( $match )
		{
			return '&#'.( ( ord($match[1]) - 240 ) * 262144 + ( ord($match[2]) - 128 ) * 4096 + ( ord($match[3]) - 128 ) * 64 + ( ord($match[4]) - 128 ) ) . ';';
		}, $string );
        
        /* Three byte chars */
        $string = preg_replace_callback( "/([\340-\357])([\200-\277])([\200-\277])/", function( $match )
		{
			return '&#'.((ord($match[1])-224)*4096 + (ord($match[2])-128)*64 + (ord($match[3])-128)).';';
		}, $string ); 

        /* Two byte chars */
        $string = preg_replace_callback("/([\300-\337])([\200-\277])/", function( $match )
		{
			return '&#'.((ord($match[1])-192)*64+(ord($match[2])-128)).';';
		}, $string); 

        return $string; 
    }

1

#9 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 562
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 21 Январь 2016 - 01:14

Круто. Спасибо большое!
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

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


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна