Форумы » VOC++ чаты (больше не поддерживаются) »

Запуск VOC++ чата на "PHP 5.6" - без проблем! И что с PHP7.1?



1 2 3

19336
Dimitry
[b]Запуск VOC++ чата на "PHP 5.6" - без проблем! И что с PHP7.1?[/b]

Запустил чат на php5.6, исправил критические проблемы, после чего чат запустился, однако есть ещё другие мелкие проблемки.
Необходимые найденные исправления доступны ниже:

1. В файл [b]inc_comon.php[/b] в самом верху добавить такие зелёные строки:
[quote]<?php
[color=green]
//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];
}

[/color][/quote]
2. В файле [b]events.php[/b] [u]найти 73 строку[/u] и меняем на новую, изменения синим:
[quote]if(function_exists($eventHandlers[$i]["handler"])) [color=blue]$eventHandlers[$i]["handler"]($HParam, $LParam);[/color][/quote]
3. Чат уже работает, но есть другие файлы с [b]номерами[/b] строк где возможны ошибки, [u]просто удаляем [color=red]красные &[/color][/u]:
[quote]admin/clan_list.php:[b]19[/b]: $url = fsockopen($address, 80, [color=red]&[/color]$errno, [color=red]&[/color]$errstr, 30);
edit_clan.php:[b]24[/b]: $url = fsockopen($address, 80, [color=red]&[/color]$errno, [color=red]&[/color]$errstr, 30);
plugins/antiproxy/Client.php:[b]632[/b]: $this->socket = fsockopen( $host, $port, [color=red]&[/color]$this->reply, [color=red]&[/color]$this->replyString, 5);
powmod/friends/friends.php:[b]690[/b]: array_push( [color=red]&[/color]$approval_friend, $row_a['friend_name'] );
powmod/friends/friends.php:[b]691[/b]: array_push( [color=red]&[/color]$approval_friend_id, $row_a['fid'] );[/quote]
SSH команда поиска лишних [b]&[/b], кроме папки форума, для экспертов:
[quote]egrep -n -R '[( ]{1}&\$' ./|grep -v Binary|grep -v 'function '|grep -v '/forum/'[/quote]
4. Если присутствует нижеприведенная строка 341 в файле [b]sender.php[/b], то добавим пропущенный знак равно =, добавьте его так как в строке ниже:
[quote]if (($type=="JPG") || ($type[color=blue][b]=[/b][/color]="JPEG")) $open_file=imagecreatefromjpeg($file.$text);[/quote]
5. В файле [b]admin_work.php[/b] и в файле [b]adm_cmd.php[/b] находим все функции [b]strcasecmp[/b] и заменяем на эту:
[quote][b]strnatcasecmp[/b][/quote]
6. У кого не работает вход в админку, нужно в файле [b]admin/check_session.php[/b] изменить 2 верхние строки так:
[quote]<?php
$lang = "";
while (list($var, $val) = each([color=blue]$_GET[/color])) $$var = $val;
while (list($var, $val) = each([color=blue]$_POST[/color])) $$var = $val;[/quote]
7. >>> Этот пункт по желанию. Рекомендация для быстрой работы викторины, для всех таблиц в базе данных через phpMyAdmin установить вид движка [b]InnoDB[/b]. Зайти в phpMyAdmin, нажать на таблицу, затем в Операции через верхнее меню, и там можно выбрать движок базы InnoDB и конвертировать.

8. В чужой старой сборке найдена проблема кодировки при написании в чате, исправлять надо в файле [b]sender.php[/b] найдя 2 строки с функцией [b]htmlspecialchars[/b] и приведя их к такому виду:
[quote]<script language="JavaScript" type="text/javascript"> alert('<?php echo htmlspecialchars($MsgToPass); ?>');</script>
и
$mesg = htmlspecialchars($mesg);[/quote]
оказалось таких файлов очень много, что это за сборка не понятно, чтобы найти все такие файлы, нужно выполнить команду в папке чата через шелл и во всех найденных функциях вырезать красный код: [color=red][b], NULL, '' [/b][/color]:
[quote]egrep -n -R 'htmlspecialchars' |grep 'NULL,'[/quote]
[color=red]Для запуска чата VOC++ на версии 5.6 достаточно пунктов [b]1 и 2[/b], а чтобы заработали некоторые модули, нужно сделать ещё и [b]3[/b].
Пункты 4, 5, 6 это мелкие исправления, таких у каждого может быть много, зависит от сборки! Номер строк может также не совпадать, если файлы менялись. После всех исправлений, не забудьте переключить версию PHP на 5.6 через панель Webserv24 в настройках вашего домена.[/color]
298
mychatik
Протестировал на рабочем чате.

После внесения поправок и перехода на [b]PHP5.6[/b] - чат работает, но не принимает кириллицу.
В сообщениях проходят смайлы, цифры и английские буквы. Вместо текста на русском языке - пустое сообщение.
19336
Dimitry
Это единственный баг?
Если да, то может быть стоит им заняться.
19336
Dimitry
Кажется понял причину кодировки, достаточно прописать в common файле такое
[quote]ini_set('default_charset','cp1251');[/quote]
298
mychatik
В принципе, проблема локализована.

Чат заработал! Сообщения идут.

Но сдохла викторина 🙁
Похоже, как отвалился коннект с базой.
В качестве ответа принимает всё подряд и вместо символов правильного ответа - вопросительные знаки.

[img]https://imgs.su/upload/161/1220612572.png[/img]

Потестировал ещё - викторина считает количество знаков и только по этому параметру принимает ответ.
Если знаков меньше, чем в условии вопроса - то не примет ответ, а если больше - то принимает.
Вызов ТОП-10 по команде [b]!топ[/b] - работает.

===================

Судя по всему, проблема теперь в [b]mysql_connect[/b] - нужно менять на [b]mysqli_connect[/b].
Как-то так...
[quote]Расширение — [b]mysql_connect()[/b] — устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него [b]MySQLi[/b] или [b]PDO_MySQL[/b].[/quote]
У меня сделан вывод статистики ответов и награда для пользователей, находящихся в 10-ке лидеров через [b]mysqli_connect[/b] - всё работает без изменений.
Но только я поставил обращение к базе через [b]mysql_connect[/b] - сразу же пропала статистика.
19336
Dimitry
mysql_connect - работает нормально в 5.6, поэтому должно работать, но в версии 5.6 всё сделано для UTF-8, поэтому нужно видимо и для базы задать кодировку верную, напиши мне лично и решим проблему, потом можем написать все нужные исправления для работы на 5.6. А версию 5.3 я планирую удалить в будущем ...
19336
Dimitry
Викторина исправлена добавлением mb_internal_encoding("cp1251"); - наверху изменил описание.
19336
Dimitry
Градиент исправлен в пункте 2.
Кланы и некоторые модули исправляются в пункте 3.
19336
Dimitry
1й пункт обновлён для правильной работы загрузки файлов.
19336
Dimitry
Добавлен пункт 4 с исправлением, в некоторых чатах может не выводиться gif вложения по хештегу, только jpg работают.
19336
Dimitry
[b]Викторина работает ещё медленнее после обновлений на сервере[/b]

Ответ на викторину приходит на 2-3 сек дольше чем раньше. Проблема в том что код VOC++ очень старый и с новой базой данных он работает ещё хуже чем до этого. Если кому то нужно исправить такую же проблему пишите мне, попробуйте просто изменить таблицы в базе с [b]MyISAM => InnoDB[/b].
19336
Dimitry
Добавлен новый пункт 5, решает проблему регистра поиска по нику в админке.
19
Skriptoff
4й пункт,
[quote]if (($type=="JPG") || ($type=="JPEG"))[/quote]
Это точно файл sender.php в корне? там такой переменной даже нет, я пересмотрел все сборки что у нас на установке стоят, искал и по всем файлам чата.
Возможно это кастомный код
298
mychatik
[quote=Skriptoff]Это точно файл sender.php в корне? там такой переменной даже нет, я пересмотрел все сборки что у нас на установке стоят, искал и по всем файлам чата.
Возможно это кастомный код[/quote]
Да, точно!
Этот код (он выводит картинки в чат) стоит во всех чатах со старыми вложениями (или там, где эти вложения когда-то стояли).
И вообще, в инструкции по установке вложений (старых) нигде нет этого кода.
Написано только:
[quote]Для того, чтобы работали смайлы версии 2.0 и вложения - нужно применять исправленный sender.php[/quote]
и прилагается файл с ошибкой.
Просмотрел несколько сборок, которые есть у меня - везде с этим косяком.
Что удивительно, до перехода на php5.6, ошибка никак не проявлялась. Всё работало.
19336
Dimitry
Да, работали с чатом [b]mychatik[/b], поэтому может быть только его код, и строки могут не совпадать...
Для запуска чата VOC достаточно пунктов [b]1 и 2[/b], чтобы заработали некоторые модули, нужно сделать ещё и [b]3[/b].
Пункты 4, 5, 6 это мелкие исправления, таких у каждого может быть много, зависит от сборки!
26
Инкогнито
Я конечно извиняюсь, но в 5 пункте не [b]admin_work[color=red]s[/color].php[/b] а [b]admin_work.php[/b]


=======================

[b][color=red]Модератор:[/color] Спасибо, исправлено.[/b]
26
Инкогнито
В чате не работают все кнопки админские, пишет "не найден", и банк не работает, есть по этому какие-то действия?

Так же не работал поиск в редакторе, сделали в файле adm_cmd.php пункт 5 и он заработал
19336
Dimitry
Про adm_cmd.php информацию добавил, админские кнопки должны работать, не должно быть связано со сменой версии.
Не найден? Какой урл у этого файла и как выглядит эта страница?
Если что mychatik может помочь, ну или Артем.
26
Инкогнито
Сделал откат, вернул 5,3 версию пхп все работает хорошо, ставлю снова 5,6 делаю пункты и снова, кнопки админа не работают, а так же админка которая в чате, не работает из замеченного Редактор пользовательских данных (поиск пользователей), Смена топика, Редактор комнат, Банк (но это ладно, это дополнительный мод)
19336
Dimitry
Сделай 5.6 с всеми выполненными пунктами и ссылку скинь, я зайду гляну.
А то завтра уже отключение.
1 2 3


Неавторизованные и новички не могут отправлять сообщения.

© 2008-2020
Контакты | Группа | Privacy и Cookie | Правила