Уважаемые пользователи!
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? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
AlexOo
phpBB 2.0.1
Сообщения: 275
Стаж: 10 лет 11 месяцев
Благодарил (а): 86 раз
Поблагодарили: 10 раз

Вывести аватар по прямому урлу

Сообщение AlexOo »

Всем привет.

Пользовательские авараты лежат в папке /images/avatars/upload/ и имеют стремные названия, из серии 2ae4f5f63e37f45d9de551aeb203db7a_191.jpg, где 191 - это ID пользователя в базе.

Подскажите пожалуйста:
1. Есть ли возможно упростить названия файлов с аватарками по типу <ID>.<Расширение_файла>
2. Подтянуть в шаблон аватарку по прямому урлу, из серии site.ru/images/avatars/upload/191.jpg

Спасибо.

P.S. И чисто из любопытства, зачем в именах файлов прописывается это мракобесие "2ae4f5f63e37f45d9de551aeb203db7a_"? Неужели из коробки было сложно просто оставить ID, ведь на проекте не может быть 2х пользователей с одним ID и так же не может быть у пользователя более 1 аватара.

Выговорился )))
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Вывести аватар по прямому урлу

Сообщение Nekstati »

1. Бессмысленное действие.

2.
Удалить images/avatars/upload/.htaccess или соотв. строки в конфиге Nginx, если они есть (запрещающие доступ к папке с аватарами)
Открыть includes/functions.php
Найти

Код: Выделить всё

if ($lazy)
Добавить перед

Код: Выделить всё

		if ($row['avatar_type'] == 'avatar.driver.upload') {
			$ext		= substr(strrchr($row['avatar'], '.'), 1);
			$stamp		= (int) substr(stristr($row['avatar'], '_'), 1);
			$filename	= strtok($row['avatar'], '_');
			$avatar_data['src'] = "{$user->page['root_script_path']}images/avatars/upload/{$config['avatar_salt']}_$filename.$ext?$stamp";
		}
AlexOo
phpBB 2.0.1
Сообщения: 275
Стаж: 10 лет 11 месяцев
Благодарил (а): 86 раз
Поблагодарили: 10 раз

Re: Вывести аватар по прямому урлу

Сообщение AlexOo »

Nekstati,

1. Почему бессмысленное ? Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
2. Без правок ядра я так понимаю никак ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: Вывести аватар по прямому урлу

Сообщение Татьяна5 »

AlexOo писал(а): 19.02.2024 2:06 Зная ID пользователя можно просто условием "if ... to ... else" вывести аватарку, просто сравнивая ID пользователя и имя аватары
Обычно там, где есть id, бывают и аватары, за редким исключением
AlexOo
phpBB 2.0.1
Сообщения: 275
Стаж: 10 лет 11 месяцев
Благодарил (а): 86 раз
Поблагодарили: 10 раз

Re: Вывести аватар по прямому урлу

Сообщение AlexOo »

Татьяна5, давайте возьмем для примера ваш аватар на данном проекте. Он открывается по адресу
/download/file.php?avatar=38225_1392640473.gif

Если посмотреть оригинальное имя в папке /images/avatars/upload/, то там вероятнее всего будет что-то из серии
ae4f5f63e37f45d9de551aeb203db7a_38225.gif

Так зачем усложнять, если можно его вывести по адресу

/images/avatars/upload/38225.gif

Я просто не очень улавливаю логику. Возможно сможете пролить свет на все это добро ...
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: Вывести аватар по прямому урлу

Сообщение Татьяна5 »

AlexOo писал(а): 19.02.2024 2:59 Так зачем усложнять
Для безопасности
Сейчас известных уязвимостей нет, но нельзя исключить, что появится новая, и что встроена она будет в картинку (как уже не раз было). Без прямого доступа к файлам в том случае загруженный файл всё равно запустить не удастся, а описанный подход требует открытия именно прямого доступа
AlexOo
phpBB 2.0.1
Сообщения: 275
Стаж: 10 лет 11 месяцев
Благодарил (а): 86 раз
Поблагодарили: 10 раз

Re: Вывести аватар по прямому урлу

Сообщение AlexOo »

Убедили. Но не проще ли этот вопрос решать в моменте загрузки авы на сервер, чтобы не городить подобный огород ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: Вывести аватар по прямому урлу

Сообщение Татьяна5 »

AlexOo, он и решается в том моменте. Работает против известных подходов. А против неизвестных?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Вывести аватар по прямому урлу

Сообщение Nekstati »

AlexOo писал(а): 19.02.2024 2:06 2. Без правок ядра я так понимаю никак ?
А чего все их так боятся? Это же не ядро ОС, которое потом надо компилировать с 100-й попытки.

Если хотите, пишите расширение, там есть подходящий event.
AlexOo писал(а): 19.02.2024 3:42Убедили
А меня не убедили. Весь мир (Wordpress, например) отдаёт файло по прямым ссылкам и не парится, а здесь какая-то абстрактная перестраховка. Которая, между прочим, жрёт ресурсы. Каждая аватара дёргает всю машинерию форума с базой данных, расширениями и т.д.
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: Вывести аватар по прямому урлу

Сообщение ReXtor »

Nekstati писал(а): 19.02.2024 4:10 Весь мир (Wordpress, например) отдаёт файло по прямым ссылкам и не парится, а здесь какая-то абстрактная перестраховка.
Именно поэтому у phpBB нет известных уязвимостей, не так ли?

Отправлено спустя 2 минуты 56 секунд:
Nekstati писал(а): 19.02.2024 4:10 А чего все их так боятся?
Весьма странно слышать про правки ядра от "Поддержки" о_О
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Вывести аватар по прямому урлу

Сообщение Nekstati »

ReXtor, если поддержка в вашем представлении состоит в том, чтобы на каждый чих писать новое расширение, то никакая поддержка писать его, разумеется, не будет. Писать его будет сам пользователь. Ну или платить писателю. Поддержка тогда лишается всякого смысла - готовые расширения можно искать через Гугл, а новые заказывать на биржах.
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: Вывести аватар по прямому урлу

Сообщение ReXtor »

Nekstati писал(а): 19.02.2024 5:19 на каждый чих писать новое расширение
На каждый чих лезть в ядро - тоже такое себе. Загоняем сами себя в угол ведь. Вроде уже проходили проблему "ручных" правок в прошлых версиях с модами...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: Вывести аватар по прямому урлу

Сообщение Татьяна5 »

Nekstati писал(а): 19.02.2024 4:10 Wordpress, например
Взламывается даже мимопроходящими школьниками. Сама была тому свидетелем
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: Вывести аватар по прямому урлу

Сообщение southklad »

Nekstati писал(а): 19.02.2024 0:52 1. Бессмысленное действие.
Дико плюсую, тут бы пользователей удержать на форуме
Изображение
Аватара пользователя
Michel
phpBB 2.0.0
Сообщения: 239
Стаж: 12 лет 3 месяца
Откуда: Липецк
Благодарил (а): 69 раз
Поблагодарили: 23 раза

Re: Вывести аватар по прямому урлу

Сообщение Michel »

Nekstati писал(а): 19.02.2024 4:10 А чего все их так боятся? Это же не ядро ОС, которое потом надо компилировать с 100-й попытки.
Ну тут вопрос стоит совсем иначе. Сайт на много важнее. Это публичная деятельность. Где если подменят платёжную систему на сайте или более того получат доступ к личным данным пользователей, мало не покажется. Ядро операционной системы покажется детским лепетом.
Татьяна5 писал(а): 19.02.2024 5:29 Взламывается даже мимопроходящими школьниками. Сама была тому свидетелем
Именно поэтому уже столько лет дружу с PHPBB.
ReXtor писал(а): 19.02.2024 4:53 Именно поэтому у phpBB нет известных уязвимостей, не так ли?
+100500

Вернуться в «Поддержка phpBB 3.3.x»