Февраль 25, 2018, 08:52:35 pm

 Админка на серверах NNCS.RU | Скачать Counter Strike 1.6 | Аренда сервера CS 1.6

Автор Тема: Установка Psychostats 3.1 на php 5.3  (Прочитано 2979 раз)

Оффлайн Anton1o

  • IS Admin
  • Старожил
  • *****
  • Сообщений: 1796
  • Рейтинг: +186/-24
  • ICQ: 460562
    • Просмотр профиля
    • HuHo Gaming World
Установка Psychostats 3.1 на php 5.3
« : Февраль 13, 2012, 01:29:24 pm »
Если появляются ошибки:

Deprecated: Assigning the return value of new by reference is deprecated in
Warning: call_user_func_array() expects parameter 2 to be array, string given in

В связи выходом новой версии php 5.3 очень много сайтов (модов, плагинов) стали некорректно работать. Причина этого кроется в том, что разработчики отметили часть функций как DEPRECATED - это означает, что они перестанут вообще работать в следующих версиях php. Список отмеченных DEPRECATED функций:

Код: (список функций) [Выделить]
    call_user_method()
    call_user_method_array()
    define_syslog_variables()
    dl()
    ereg()
    ereg_replace()
    eregi()
    eregi_replace()
    set_magic_quotes_runtime()
    session_register()
    session_unregister()
    session_is_registered()
    set_socket_blocking()
    split()
    spliti()
    sql_regcase()
    mysql_db_query()
    mysql_escape_string()


Из-за этого возникла проблема при установке Psychostats 3.1 на php 5.3. Немного поковырявшись, я решил эту проблему. Вот список того, что надо сделать, чтобы статистика корректно работала:

Файл: /includes/functions.php
 
Код: (Найти:) [Выделить]
function compacttime($seconds, $format="hh:mm:ss") {  
Код: (Добавить после:) [Выделить]
$format="hh:mm:ss";

Файл: /includes/class_table.php

Код: (Найти:) [Выделить]
function callback($html, $callback, $params = array()) { $ret = false; if (function_exists($callback) or is_array($callback)) { $ret = call_user_func_array($callback, $params ? array($html, $params) : $html); } elseif (strpos($callback, '%') !== false) { $ret = sprintf($callback, $html); } if ($ret !== false) $html = $ret; /* list($obj, $func) = is_array($callback) ? $callback : array(null, $callback); if ($obj and is_object($obj) and method_exists($obj, $func)) { $html = $obj->$func($html); } elseif (function_exists($func)) { $html = $func($html); } */ return $html; }
Код: (Заменить на:) [Выделить]
function callback($html, $callback, $params = array()) { $ret = false; if ($ret !== false) $html = $ret; list($obj, $func) = is_array($callback) ? $callback : array(null, $callback); if ($obj and is_object($obj) and method_exists($obj, $func)) { $html = $obj->$func($html); } elseif (function_exists($func)) { $html = $func($html,$params); } return $html; }

Файл: /includes/common.php
   
Код: (Найти:) [Выделить]
error_reporting(E_ALL ^ E_NOTICE);    
Код: (Заменить на:) [Выделить]
error_reporting(0);    
Код: (Найти:) [Выделить]
set_magic_quotes_runtime(0);    
Код: (Заменить на:) [Выделить]
//set_magic_quotes_runtime(0);
« Последнее редактирование: Сентябрь 11, 2013, 06:43:21 pm от Anton1o »