Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 16:44
jd8615 писал(а): 14.08.2024 16:39
/var/log/exim/main.log
Из этого куска неясно, был ли аргумент у HELO и какой. Может быть, выше есть сама команда типа
HELO web.site.ru
. И как конкретно выглядит
web.site.ru
- нестандартных символов не содержит?
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 16:55
rxu писал(а): 14.08.2024 16:44
И как конкретно выглядит web.site.ru - нестандартных символов не содержит?
вот прям так и выглядит
обычный домен без кириллицы.
rxu писал(а): 14.08.2024 16:44
Может быть, выше есть сама команда типа HELO web.site.ru
Нету, это думаю надо как то телнетом туда ходить эмулируя форум, но на этом мои полномочия фсе
Сам почтовый сервер настроен, тест проходит на 10\10 в том числе если почту проверять из под регистрации пользователя. Но только на php7.4 на 8 и выше - не работает
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 17:06
jd8615 , такой скрипт из корня phpBB что выдаст под PHP8?
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
var_dump($local_host);
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = @gethostbyname($local_host)) !== $local_host)
{
// Able to resolve IP back to name
if (($name = @gethostbyaddr($addr)) !== $addr)
{
$local_host = $name;
}
}
}
var_dump($local_host);
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 17:23
rxu писал(а): 14.08.2024 17:06
такой скрипт из корня phpBB что выдаст под PHP8?
string(9) "devuan.ru" string(0) ""
Отправлено спустя 2 минуты 46 секунд:
А если сменить версию php то будет:
string(9) "devuan.ru" string(13) "web.site.ru"
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 17:27
jd8615 писал(а): 14.08.2024 17:23
string(9) "devuan.ru" string(0) ""
Теперь понятно. Неясно только, почему так происходит. А в таком варианте?
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
var_dump($local_host);
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = gethostbyname($local_host)) !== $local_host)
{
var_dump($addr);
// Able to resolve IP back to name
if (($name = gethostbyaddr($addr)) !== $addr)
{
$local_host = $name;
}
}
}
var_dump($local_host);
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 17:41
rxu писал(а): 14.08.2024 17:27
А в таком варианте?
Тоже самое string(0) "" на конце, а на прошлой версии php string(13) и хост отображается
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 17:43
jd8615 писал(а): 14.08.2024 17:41
string(0) "" на конце
IP адрес сервера выдает в середине?
Отправлено спустя 2 минуты 20 секунд:
И еще, какая конкретно версия PHP8?
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 17:46
rxu писал(а): 14.08.2024 17:43
IP адрес сервера выдает в середине?
да, там все с этим ок
string(9) "devuan.ru" string(13) "192.168.0.1" string(13) "web.site.ru" - на php7.4
string(9) "devuan.ru" string(13) "192.168.0.1" string(0) "" - на php8
Отправлено спустя 23 секунды:
rxu писал(а): 14.08.2024 17:45
И еще, какая конкретно версия PHP8?
8.0.30
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 17:48
jd8615 писал(а): 14.08.2024 17:46 8.0.30
С функцией
gethostbyaddr
были проблемы до версии PHP 8.1.2 - она выдавала бинарную строку на выходе. Есть возможность попробовать PHP 8.1.2+?
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 17:54
rxu писал(а): 14.08.2024 17:48
Есть возможность попробовать PHP 8.1.2+?
Есть, попробовал на 8.1.29 все так же как и на 8.0
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 17:59
jd8615 , а такая правка в
includes/functions_messenger.php
Код: Выделить всё
FIND
if (($name = @gethostbyaddr($addr)) !== $addr)
REPLACE WITH
if (!empty($name = gethostbyaddr($addr)) && $name !== $addr)
исправит проблему?
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 18:16
rxu писал(а): 14.08.2024 17:59
исправит проблему?
не помогло, все так же
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 18:26
jd8615 писал(а): 14.08.2024 18:16 не помогло
Тогда еще один тест под PHP8:
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = gethostbyname($local_host)) !== $local_host)
{
// Able to resolve IP back to name
if (!empty($name = gethostbyaddr($addr)) && $name !== $addr)
{
$local_host = $name;
}
}
}
var_dump(strspn($local_host, '01') === strlen($local_host));
Должно выдать
true
или
false
.
rxu
jd8615
phpBB 2.0.1
Сообщения: 261 Стаж: 5 лет
Откуда: Москва
Благодарил (а): 54 раза
Поблагодарили: 35 раз
Сообщение
jd8615 » 14.08.2024 18:33
rxu писал(а): 14.08.2024 18:26
Должно выдать true или false.
bool(false)
Отправлено спустя 57 секунд:
на 7.4 тоже кстати самое
jd8615
rxu
phpBB Guru
Сообщения: 16700 Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 558 раз
Поблагодарили: 1848 раз
Сообщение
rxu » 14.08.2024 18:52
jd8615 , возможно, такой код на замену будет корректнее:
Код: Выделить всё
if (!empty((string) $name = gethostbyaddr($addr)) && ($name !== $addr))
rxu