kossik Опубликовано 28 июня, 2018 Жалоба Поделиться Опубликовано 28 июня, 2018 Добрый день.Обнаружил, что изображения, ссылка на которые идет на https сервера не загружаются.В этом случае функция resize вообще не запускается, так же как и не заходит в файл resize.php Проблема в редиректе? Или в скрипте, который выводит изображения в шаблон? Редирект в настоящее время выглядит вот так: # Ресайз картинок на лету RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^files/products/(.+) resize/resize.php?file=$1&token=%{QUERY_STRING} RewriteCond %{THE_REQUEST} ^GET\ (.*)files/products/(.*)\?([A-z0-9]*) RewriteRule ^files/products/(.+) resize/resize.php?file=%2&token=%3 [L,NE] Цитата Ссылка на сообщение Поделиться на другие сайты
kycher Опубликовано 29 июня, 2018 Жалоба Поделиться Опубликовано 29 июня, 2018 (изменено) Доброго дняВ cms simplacms в стандартной, даже последней версии, не загружаютсяизображения товара через "загрузить из интернета" по url начинающимся с https://,в базу данных пишется путь с https, фото не загружается в папку, тепроисходит в функции которая отвечает за добавление товара где обработкасобытия по "add_image_url" или прерывание на передаче и обрезке url дляпоследующего сохранения файла и записи в базу имени изображения.Обычные файлы поправить не получилось;( (simpla/ProductAdmin.php , simpla/design/html/product.tpl)Предполагаю что дело вообще в обработчике, скорее всего в файле api/Request.phpв simpla/design/html/product.tpl есть строки описывающие изменение на https не помогло // Или с URL $('#add_image_url').click(function() { $("<input class='remote_image' name=images_urls[] type=text value='http://'>").appendTo('div#add_image').focus().select(); }); в simpla/ProductAdmin.php есть строки, тоже изменение не помогло. // Загрузка изображений из интернета if($images = $this->request->post('images_urls')) { foreach($images as $url) { if(!empty($url) && $url != 'http://') $this->products->add_image($product->id, $url); } } $images = $this->products->get_images(array('product_id'=>$product->id)); Не загружаются url с https на картинку. Help! Спасибо за направление на путь истинный) Изменено 29 июня, 2018 пользователем kycher Цитата Ссылка на сообщение Поделиться на другие сайты
Решение kossik Опубликовано 29 июня, 2018 Автор Решение Жалоба Поделиться Опубликовано 29 июня, 2018 (изменено) Решение нашлось! 1. Файл simpla\simpla_source\api\Design.phpМеняем строку if(substr($resized_filename_encoded, 0, 7) == 'http://') на if(substr($resized_filename_encoded, 0, 7) == 'http://' || substr($resized_filename_encoded, 0, 8) == 'https://') 2. Файл simpla\simpla_source\simpla\ProductAdmin.phpМеняем строку if(!empty($url) && $url != 'http://' && strstr($url,'/')!==false) на if(!empty($url) && $url != 'http://' && $url != 'https://' && strstr($url,'/')!==false) 3. Файл simpla\simpla_source\api\Image.phpМеняем строку if(substr($source_file, 0, 7) == 'http://') на if(substr($source_file, 0, 7) == 'http://' || substr($source_file, 0, 8) == 'https://') Все! Теперь изображения загружаются и из под админки и из БД, в случае импортированных товаровТак же можно вместо проверки поставить вот так, например: preg_match("~^https?://~", $source_file)Ну это по желанию, суть не меняется Изменено 29 июня, 2018 пользователем kossik Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июня, 2018 Жалоба Поделиться Опубликовано 29 июня, 2018 Забыли про ftp, решение можно упростить через фильтр валидатор. Цитата Ссылка на сообщение Поделиться на другие сайты
kossik Опубликовано 29 июня, 2018 Автор Жалоба Поделиться Опубликовано 29 июня, 2018 Забыли про ftp, решение можно упростить через фильтр валидатор.Спасибо за подсказку! Отличный вариант, даже не подумал о нем.filter_var($source_file, FILTER_VALIDATE_URL) Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 июня, 2018 Жалоба Поделиться Опубликовано 29 июня, 2018 Спасибо за подсказку! Отличный вариант, даже не подумал о нем.filter_var($source_file, FILTER_VALIDATE_URL)Всё верно. Цитата Ссылка на сообщение Поделиться на другие сайты
Morfeus Опубликовано 17 февраля, 2019 Жалоба Поделиться Опубликовано 17 февраля, 2019 Большое спасибо тебе мил человек (Kossik), все работает) Цитата Ссылка на сообщение Поделиться на другие сайты
Tarasbulba Опубликовано 16 июля, 2020 Жалоба Поделиться Опубликовано 16 июля, 2020 Спасибо за подсказку! Отличный вариант, даже не подумал о нем.filter_var($source_file, FILTER_VALIDATE_URL)а куда валидатор вставлять в какой файл? Цитата Ссылка на сообщение Поделиться на другие сайты
krasafcheg Опубликовано 18 июля, 2020 Жалоба Поделиться Опубликовано 18 июля, 2020 Братцы куда filter_var($source_file, FILTER_VALIDATE_URL) добавлять Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 19 июля, 2020 Жалоба Поделиться Опубликовано 19 июля, 2020 Лучше всего никуда не добавлять. Потому что если добавлять, то по-хорошему еще добавочно надо код переделывать существенно. Особых преимуществ не даст, но может создать проблемы, например, будет определять адрес 'ttttttt://example.com/' как валидный. Цитата Ссылка на сообщение Поделиться на другие сайты
krasafcheg Опубликовано 19 июля, 2020 Жалоба Поделиться Опубликовано 19 июля, 2020 Лучше всего никуда не добавлять. Потому что если добавлять, то по-хорошему еще добавочно надо код переделывать существенно. Особых преимуществ не даст, но может создать проблемы, например, будет определять адрес 'ttttttt://example.com/' как валидный.тогда какое лекарство по добавлению фоток через https Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 19 июля, 2020 Жалоба Поделиться Опубликовано 19 июля, 2020 Оно в теме и написано в #3. Правда, работать будет не на всех серверах.По-хорошему надо дорабатывать посущественнее, с использованием CURL. Но бесплатно такое вряд ли кто выложит... Цитата Ссылка на сообщение Поделиться на другие сайты
krasafcheg Опубликовано 20 июля, 2020 Жалоба Поделиться Опубликовано 20 июля, 2020 Оно в теме и написано в #3. Правда, работать будет не на всех серверах.По-хорошему надо дорабатывать посущественнее, с использованием CURL. Но бесплатно такое вряд ли кто выложит...так и платного решения найти не могу, на 1 сайте лежит за 350 рублей, но там написано что за работоспособность не отвечают, может есть у кого хоть платный вариант.... ? Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 20 июля, 2020 Жалоба Поделиться Опубликовано 20 июля, 2020 (изменено) Заменяем В api/Image.php... // Если файл удаленный (http://), зальем его себе if (preg_match("~^https?://~", $source_file)) {...В api/Design.php... if (preg_match("~^https?://~", $resized_filename_encoded)) { $resized_filename_encoded = rawurlencode($resized_filename_encoded); }...Плюс Файл simpla\ProductAdmin.php Меняем строкуif(!empty($url) && $url != 'http://' && strstr($url,'/')!==false) Наif(!empty($url) && $url != 'http://' && $url != 'https://' && strstr($url,'/')!==false) Оригинал: https://qna.habr.com/q/542206 Изменено 20 июля, 2020 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
krasafcheg Опубликовано 21 июля, 2020 Жалоба Поделиться Опубликовано 21 июля, 2020 ЗаменяемВ api/Image.php...// Если файл удаленный (http://), зальем его себеif (preg_match("~^https?://~", $source_file)) {...В api/Design.php...if (preg_match("~^https?://~", $resized_filename_encoded)) {$resized_filename_encoded = rawurlencode($resized_filename_encoded);}...ПлюсФайл simpla\ProductAdmin.php Меняем строкуif(!empty($url) && $url != 'http://' && strstr($url,'/')!==false) Наif(!empty($url) && $url != 'http://' && $url != 'https://' && strstr($url,'/')!==false) Оригинал: https://qna.habr.com/q/542206 Alex спасибо за предложенное решение, можно поподробнее с api/Design.php, там два места с кодом http, сделал все по инструкции, пробовал менять с одном месте и в двух, эффекта загрузки нет, появляется пустая картинка ведущая на 404 ЗаменяемВ api/Image.php...// Если файл удаленный (http://), зальем его себеif (preg_match("~^https?://~", $source_file)) {...В api/Design.php...if (preg_match("~^https?://~", $resized_filename_encoded)) {$resized_filename_encoded = rawurlencode($resized_filename_encoded);}...ПлюсФайл simpla\ProductAdmin.php Меняем строкуif(!empty($url) && $url != 'http://' && strstr($url,'/')!==false) Наif(!empty($url) && $url != 'http://' && $url != 'https://' && strstr($url,'/')!==false) Оригинал: https://qna.habr.com/q/542206нет случаем файлов "под замену", с меня пиво =D Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 21 июля, 2020 Жалоба Поделиться Опубликовано 21 июля, 2020 (изменено) Alex спасибо за предложенное решение, можно поподробнее с api/Design.php, там два места с кодом http, сделал все по инструкции, пробовал менять с одном месте и в двух, эффекта загрузки нет, появляется пустая картинка ведущая на 404 нет случаем файлов "под замену", с меня пиво =Dhttps://github.com/pikusov/Simpla/blob/9fefafa38dc739b4348b4a2940cba8bc8e4363ed/api/Design.php#L213Код на линиях 213 и 214 заменить На if (preg_match("~^https?://~", $resized_filename_encoded)) {$resized_filename_encoded = rawurlencode($resized_filename_encoded);} Изменено 21 июля, 2020 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 21 июля, 2020 Жалоба Поделиться Опубликовано 21 июля, 2020 https://github.com/pikusov/Simpla/blob/9fefafa38dc739b4348b4a2940cba8bc8e4363ed/api/Design.php#L213 Код на линиях 213 и 214 заменить На if (preg_match("~^https?://~", $resized_filename_encoded)) { $resized_filename_encoded = rawurlencode($resized_filename_encoded); }Регулярка будет тяжелее, лучше не использовать. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 21 июля, 2020 Жалоба Поделиться Опубликовано 21 июля, 2020 Alex спасибо за предложенное решение, можно поподробнее с api/Design.php, там два места с кодом http, сделал все по инструкции, пробовал менять с одном месте и в двух, эффекта загрузки нет, появляется пустая картинка ведущая на 404 Решение, которое предложил alexivchenko, мало отличается от #3 в этой теме, поэтому получить от него какой-то положительный эффект очень маловероятно. Это как раз тот случай, когда "за работоспособность не отвечают", ибо оно по объективным причинам чаще не работает... Цитата Ссылка на сообщение Поделиться на другие сайты
Tarasbulba Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 на версии 2.1.5 не заработало. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 Странно, что у кого-то не работает...Версия 2.3.8Ставил на 4 сайта, работает загрузка при импорте, загрузка при добавлении из админ. панели. Цитата Ссылка на сообщение Поделиться на другие сайты
Tarasbulba Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 Странно, что у кого-то не работает...Версия 2.3.8Ставил на 4 сайта, работает загрузка при импорте, загрузка при добавлении из админ. панели.да на двух версиях более старших все ок. на 2.1.5 не хочет подгружать. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 Странно, что у кого-то не работает...Версия 2.3.8Ставил на 4 сайта, работает загрузка при импорте, загрузка при добавлении из админ. панели. Если Вы посмотрите хоть чуть внимательно документацию, то уже не будет ничего странного:https://php.ru/manual/function.fopen.html Цитата Ссылка на сообщение Поделиться на другие сайты
Tarasbulba Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 Если Вы посмотрите хоть чуть внимательно документацию, то уже не будет ничего странного:https://php.ru/manual/function.fopen.htmlпрочитал ничего не понял )) да на двух версиях более старших все ок. на 2.1.5 не хочет подгружать.кто нибудь помогите понять почему на 2.1.5 не работает допил https Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 прочитал ничего не понял )) кто нибудь помогите понять почему на 2.1.5 не работает допил httpsУ меня нет архива 2.1.5 так бы подсказал Цитата Ссылка на сообщение Поделиться на другие сайты
Tarasbulba Опубликовано 23 июля, 2020 Жалоба Поделиться Опубликовано 23 июля, 2020 У меня нет архива 2.1.5 так бы подсказалотправил файлы которые в инструкции в личку. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.