Запустить VOC++ на php 5.6

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.837
Реакции
1.942
Баллы
113
Информация взята с форума, автор Dimitry. Спасибо ему за работу!


Для запуска VOC++ на php 5.6 необходимо:
1. В файл inc_comon.php в самом верху после
PHP:
<?php
добавить
PHP:
//MIGRATION to PHP5.6
ini_set('default_charset','cp1251');
mb_internal_encoding("cp1251");
foreach($GLOBALS as $k=>$v) if($k[0]=="_") { if($k=="_FILES") ${"HTTP_POST$k"}=$GLOBALS[$k]; else ${"HTTP$k"."_VARS"}=$GLOBALS[$k];
}
2. В файле events.php найти 73 строку
PHP:
if(function_exists($eventHandlers[$i]["handler"])) call_user_func($eventHandlers[$i]["handler"], $HParam, &$LParam);
и заменить на
PHP:
if(function_exists($eventHandlers[$i]["handler"])) $eventHandlers[$i]["handler"]($HParam, $LParam);
3. В файле admin/clan_list.php строку 19
PHP:
$url = fsockopen($address, 80, &$errno, &$errstr, 30);
меняем на
PHP:
$url = fsockopen($address, 80, $errno, $errstr, 30);
4. В файле edit_clan.php строку 24
PHP:
$url = fsockopen($address, 80, &$errno, &$errstr, 30);
меняем на
PHP:
$url = fsockopen($address, 80, $errno, $errstr, 30);
5. В файле plugins/antiproxy/Client.php строку 632
PHP:
$this->socket = fsockopen( $host, $port, &$this->reply, &$this->replyString, 5);
меняем на
PHP:
$this->socket = fsockopen( $host, $port, $this->reply, $this->replyString, 5);
6. В файле powmod/friends/friends.php строку 690
PHP:
array_push( &$approval_friend, $row_a['friend_name'] );
меняем на
PHP:
array_push( $approval_friend, $row_a['friend_name'] );
7. В файле powmod/friends/friends.php строку 691
PHP:
array_push( &$approval_friend_id, $row_a['fid'] );
меняем на
PHP:
array_push( $approval_friend_id, $row_a['fid'] );
В пунктах 3-7 в указанных строках можно просто удалить символ &
8. В файле sender.php:
8.1. Если присутствует нижеприведенная строка
PHP:
if (($type=="JPG") || ($type="JPEG") || ($type=="PNG")) $open_file=imagecreatefromjpeg($file.$text);
то замените ее на
PHP:
if (($type=="JPG") || ($type=="JPEG") || ($type=="PNG")) $open_file=imagecreatefromjpeg($file.$text);
это примерно 341-343 строка, у всех может быть по разному
8.2. Строку
PHP:
<script language="JavaScript" type="text/javascript"> alert('<?php echo htmlspecialchars($MsgToPass, NULL, '');?>');</script>
заменить на
PHP:
<script language="JavaScript" type="text/javascript"> alert('<?php echo htmlspecialchars($MsgToPass); ?>');</script>
8.3. Строку
PHP:
$mesg = htmlspecialchars($mesg, NULL, '');
заменить на
PHP:
$mesg = htmlspecialchars($mesg);
9. В файле admin_work.php и в файле adm_cmd.php находим все функции
PHP:
strcasecmp
и заменяем на
PHP:
strnatcasecmp
10. У кого не работает вход в админку, нужно в файле admin/check_session.php изменить 4 верхние строки так:
PHP:
<?php
$lang = "";
while (list($var, $val) = each($_GET)) $$var = $val;
while (list($var, $val) = each($_POST)) $$var = $val;
11. В файле admin/index.php после
PHP:
<?php include("check_session.php");
добавить
PHP:
ini_set('default_charset','cp1251');
Кроме этого очень желательно для быстрой работы викторины, для всех таблиц в базе данных через phpMyAdmin установить вид движка InnoDB:
зайти в phpMyAdmin, нажать на таблицу, затем в Операции через верхнее меню, и в Параметрах зменить движок базы на InnoDB.


Номера строк и наличие файлов могут различаться в зависимости от сборки и правок, которые вы могли внести в файлы ранее!
 
Последнее редактирование:

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
482
Реакции
389
Баллы
63
Веб-сайт
mychatik.ru
...если все получится...
Всё получится! :good2:
По инструкции от Dimitry, чат полностью работоспособен на php 5.6. Тестирование проходило на моём чате.

В результате, чат уже полтора года работает на php 5.6. Заменены все устаревшие функции, регулярки и массивы.
Так что и вот это уже не нужно:
PHP:
foreach($GLOBALS as $k=>$v) if($k[0]=="_") { if($k=="_FILES") ${"HTTP_POST$k"}=$GLOBALS[$k]; else ${"HTTP$k"."_VARS"}=$GLOBALS[$k];
}
Если есть интерес - могу выложить процесс замены со списком файлов, в которых эта замена нужна.

В планах перевести чат уже на php 7.1, но там проблема с устаревшим MySQL и обязательным переводом на MySQLi.
А подключений к базе по чату о-очень много и все их найти и переписать руками довольно сложно и нужно много времени.
 
Последнее редактирование:

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.837
Реакции
1.942
Баллы
113

mychatik

Support
Команда форума
Регистрация
26.05.15
Сообщения
482
Реакции
389
Баллы
63
Веб-сайт
mychatik.ru
Последнее редактирование:

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.837
Реакции
1.942
Баллы
113
Сверху Снизу