Домой Каталог: Дополнения WP-Recall Prime Image Uploader После публикации сообщения изображения не отображаются
9ответ(ов) в теме
melet
не в сети 4 года
На сайте с 16.01.2018
Участник
Тем 5
Сообщения 19
1
21:31
Версия WP-Recall: 16.13.1
Версия дополнения: 1.0.3

Здравствуйте.
Ситуация похожа на

Вы не можете просматривать опубликованные ссылки

, но окружение другое.
Версия WP 4.9.5 (дополнение поставил сегодня впервые, как работало на предыдущих версиях WP - сказать не могу).
Версия PrimeForum 1.4.0
По шагам:
1. В форме создания нового сообщения загружаю изображение с локального диска.
Оно нормально загружается, отображается в области превью. Предпросмотр сообщения работает корректно, изображение отображается. На сервере изображение загрузилось в папку \wp-content\uploads\rcl-uploads\users-temp\1, но в единственном экземпляре, уменьшенное до 800x600, оригинала нет. (При загрузке по ссылке - в папке на сервере оригинал и копия 800x600.)
В логах WP сразу после загрузки изображения:

[04-Apr-2018 18:23:15 UTC] PHP Notice:  Undefined variable: button_crp in \wp-content\wp-recall\add-on\prime-image-uploader\hooks.php on line 238
[04-Apr-2018 18:23:15 UTC] PHP Notice:  Undefined variable: thumb_url in \wp-content\wp-recall\add-on\prime-image-uploader\hooks.php on line 256

2. При добавлении сообщения на форуме - сообщение появляется, изображения нет.
В библиотеке медиафайлов изображения нет. Остается в \wp-content\uploads\rcl-uploads\users-temp\1.
В логах WP следующее:
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Undefined index: item_type in \wp-content\plugins\wp-recall\add-on\prime-forum\functions-actions.php on line 464
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Trying to get property of non-object in \wp-content\plugins\wp-recall\add-on\prime-forum\functions-posts.php on line 45
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Trying to get property of non-object in \wp-content\plugins\wp-recall\add-on\prime-forum\functions-actions.php on line 152
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Trying to get property of non-object in \wp-content\plugins\wp-recall\add-on\prime-forum\functions-actions.php on line 152
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Undefined property: stdClass::$post_edit in \wp-content\plugins\wp-recall\add-on\prime-forum\functions-post-content.php on line 215
[04-Apr-2018 18:24:33 UTC] PHP Notice:  Undefined variable: object in \wp-content\plugins\wp-recall\add-on\rating-system\classes\class-rcl-rating-box.php on line 82

В логах wp-recall пусто.

Редакции сообщения
04.04.2018 21:32meletПричина: не указано
04.04.2018 21:32meletПричина: не указано
04.04.2018 21:33meletПричина: не указано
0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
2
21:44

В пхп одни нотисы, ошибок нет. У меня на одном сайте аналогичная проблема, причем у другого сайта на том же сервере проблемы нет.

Я у себя вот что проделал:

Зашел в папку плагина "Prime Image Uploader" и после 31 строки

$attach_id = media_sideload_image( $url, 0, __('Изображение сообщения форума'), 'id');

Добавил

rcl_add_log('Проблема с картинкой', $attach_id);

В итоге при публикации поста вот такая ошибка:

18:43:33 Проблема с картинкой
WP_Error Object
(
    [errors] => Array
        (
            [http_request_failed] => Array
                (
                    [0] => cURL error 52: Empty reply from server
                )

        )

    [error_data] => Array
        (
        )

)

В чем беда хз, 2 полностью идентичных сайта на одном хостинге, но на одном грузятся картинки на форум, а на другом нет

2
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
3
21:45

Если не лень, можете попробовать у себя повторить, узнаем такая же ошибка или нет

1
melet
не в сети 4 года
На сайте с 16.01.2018
Участник
Тем 5
Сообщения 19
4
22:04

Preci
Спасибо за подсказку! Все дело оказалось в том, что я тестировал дополнение на локальном "как бы" staging сервере.

WP_Error Object
(
    [errors] => Array
        (
            [http_request_failed] => Array
                (
                    [0] => cURL error 60: SSL certificate problem: unable to get local issuer certificate
                )

        )

    [error_data] => Array
        (
        )

)

Проверил - на реальном сервере все работает без проблем. Еще раз спасибо!
Жалко, конечно, что на локальном так происходит, весь остальной функционал работает нормально. Может, знаете, как победить эту проблему?

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
5
22:06

ну у вас ошибка с шифрованием, думаю надо убирать его на локальном сервере и не будет проблем

0
melet
не в сети 4 года
На сайте с 16.01.2018
Участник
Тем 5
Сообщения 19
6
15:09

Убирать ssl на локальном сервере не хочется однообразия ради. Перечитал полгугла - все советы с сертификатами не помогают. Единственное, что помогло - явно отключить проверку curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, false);, но править пришлось в wp классе cURL - конечно пришлось откатить.
Код пока не копал, но что интересно - загрузка изображений через wp user frontend работает нормально, да и аватарки профилей грузятся нормально.
Ладно, видимо, пока придется отложить проблему на локальном сервере. Главное - на продакшене работает.

1
melet
не в сети 4 года
На сайте с 16.01.2018
Участник
Тем 5
Сообщения 19
7
13:13

Дошли руки, подебажил xdebug'ом запрос.
Решить проблему загрузки файлов на локальном тестовом сервере (где включен ssl, но нет настоящих подписанных сертификатов) оказалось просто. Вдруг кто тоже столкнется.
Проблема возникает на сервере с включенным HTTPS на PHP 5.6 и выше (с этой версии PHP по умолчанию включена проверка сертификатов ssl).
Подцепляемся на фильтр http_request_args и выставляем параметр sslverify в false. При этом обязательно проверяем, что мы на локальном серваке, где https://test.local - адрес нашего локального сервера.

add_filter( 'http_request_args', 'my_disable_sslverify_for_local_server', 99, 2);
function my_disable_sslverify_for_local_server($args, $url) {
   //rcl_add_log('http_request_args args = ', $args);
   //rcl_add_log('http_request_args url', $url);

   if (strpos($args['user-agent'], 'https://test.local') !== false &&
       strpos($url, 'https://test.local/wp-content/uploads/rcl-uploads/users-temp') !== false)
          $args['sslverify'] = false;
	
   return $args;
}

Редакции сообщения
16.04.2018 13:18meletПричина: не указано
2
dim
не в сети 2 месяца
На сайте с 26.10.2019
Участник
Тем 55
Сообщения 133
8
17:45

melet сказал(а)
Дошли руки, подебажил xdebug'ом запрос.
Решить проблему загрузки файлов на локальном тестовом сервере (где включен ssl, но нет настоящих подписанных сертификатов) оказалось просто. Вдруг кто тоже столкнется.
Проблема возникает на сервере с включенным HTTPS на PHP 5.6 и выше (с этой версии PHP по умолчанию включена проверка сертификатов ssl).
Подцепляемся на фильтр http_request_args и выставляем параметр sslverify в false. При этом обязательно проверяем, что мы на локальном серваке, где https://test.local - адрес нашего локального сервера.

add_filter( 'http_request_args', 'my_disable_sslverify_for_local_server', 99, 2);
function my_disable_sslverify_for_local_server($args, $url) {
   //rcl_add_log('http_request_args args = ', $args);
   //rcl_add_log('http_request_args url', $url);

   if (strpos($args['user-agent'], 'https://test.local') !== false &&
       strpos($url, 'https://test.local/wp-content/uploads/rcl-uploads/users-temp') !== false)
          $args['sslverify'] = false;
	
   return $args;
}

Такая же проблема случилась, ничего не понял короче, вставил ваш код в функшонс php и все заработало, спасибо ахах 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝

0
csedu
не в сети 2 года
На сайте с 01.02.2018
Участник
Тем 5
Сообщения 25
9
17:13

dim сказал(а)
melet сказал(а)
Дошли руки, подебажил xdebug'ом запрос.
Решить проблему загрузки файлов на локальном тестовом сервере (где включен ssl, но нет настоящих подписанных сертификатов) оказалось просто. Вдруг кто тоже столкнется.
Проблема возникает на сервере с включенным HTTPS на PHP 5.6 и выше (с этой версии PHP по умолчанию включена проверка сертификатов ssl).
Подцепляемся на фильтр http_request_args и выставляем параметр sslverify в false. При этом обязательно проверяем, что мы на локальном серваке, где

Вы не можете просматривать опубликованные ссылки

- адрес нашего локального сервера.
add_filter( 'http_request_args', 'my_disable_sslverify_for_local_server', 99, 2);
function my_disable_sslverify_for_local_server($args, $url) {
//rcl_add_log('http_request_args args = ', $args);
//rcl_add_log('http_request_args url', $url);

if (strpos($args['user-agent'], 'https://test.local') !== false &&
strpos($url, 'https://test.local/wp-content/uploads/rcl-uploads/users-temp') !== false)
$args['sslverify'] = false;

return $args;
}
Такая же проблема случилась, ничего не понял короче, вставил ваш код в функшонс php и все заработало, спасибо ахах 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝 🤝

Куда это нужно вписать? У меня такая же проблема.

Редакции сообщения
20.10.2021 17:14cseduПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме