Уважаемые пользователи!
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.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Доработка вложений

Сообщение HAMMER663 »

при скачивании файла ссылка имеет вид /download/file.php?id=55 вот этот id надо зашифровать в md5 и чтобы прямое обращение к файлу не работало, то есть при вводе в адресную строку браузера ссылки вида http://site.ru/download/file.php?id=55 не происходила загрузка файла

Итоговый вариант.

Итак, в file.php делалось следующее
1) После строки

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

$download_id = request_var('id', 0);
добавлена строка:

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

$download_sess = request_var('sess', 0);
2) После строки

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

$user->setup('viewtopic');

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

if (md5(sha1(md5(base64_encode($download_id.$user->data['user_id'])))) != $download_sess) {
trigger_error('ERROR_NO_ATTACHMENT');
}
в function_posting.php
это

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

$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'mode=view&id=' . (int) $attach_row['attach_id'], true, ($attach_row['is_orphan']) ? $user->session_id : false);
заменяем на:

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

$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'mode=view&id=' . (int) $attach_row['attach_id'] . '&sess='.md5(sha1(md5(base64_encode($attach_row['attach_id'].$user->data['user_id'])))), true, ($attach_row['is_orphan']) ? $user->session_id : false);
теперь что не работает:
при скачивании файла выдает "данного вложения не существует", однако если редактировать сообщение, в котором есть вложение, то ссылка на скачивание файла там имеет вид /download/file.php?mode=view&id=2&sess=4cbb8bca878610a945ee4892cd0dc2cd
при этом все работает и файл скачать можно... но в шаблон почему-то такая ссылка так и не выводится

может еще какой файл надо отредактировать?
Последний раз редактировалось Alek$ 16.02.2011 17:52, всего редактировалось 2 раза.
Причина: Добавлена ссылка на правильный вариант
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Re: Доработка вложений

Сообщение HAMMER663 »

подскажите хоть куда копать? где файл, который отвечает за вывод аттачей в сообщении пользователей?

Добавлено спустя 55 минут 38 секунд:
так как мне никто не помог.. ладно.всем спасибо :)
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 13 лет 3 месяца
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз
Контактная информация:

Re: Доработка вложений

Сообщение Айдар »

HAMMER663 писал(а):где файл, который отвечает за вывод аттачей в сообщении пользователей?
viewtopic.php
Имеет смысл покопаться в /includes/functions_posting.php
In Web We Trust
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Re: Доработка вложений

Сообщение HAMMER663 »

Айдар писал(а):viewtopic.php
нету там
Айдар писал(а):Имеет смысл покопаться в /includes/functions_posting.php
я там уже изменения сделал
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Re: Доработка вложений

Сообщение HAMMER663 »

открываем файл includes/function_content.php
и находим там следующее:

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

$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
заменяем на:

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

$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . "&sess=" . md5(sha1(md5(base64_encode($attachment['attach_id'].$user->data['user_id'])))));
находим далее:

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

$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&t=1');
заменяем на:

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

$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&sess=' . md5(sha1(md5(base64_encode($attachment['attach_id'].$user->data['user_id'])))) . '&t=1');
найти

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

$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
заменить на

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

$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&sess=' . md5(sha1(md5(base64_encode($attachment['attach_id'].$user->data['user_id'])))));
Наслаждаемся:)
sweetah
phpBB 2.0.6
Сообщения: 505
Стаж: 14 лет 2 месяца
Благодарил (а): 107 раз
Поблагодарили: 26 раз

Re: Доработка вложений

Сообщение sweetah »

Странно работает этот мод. Большинство файлов действительно стало недоступно по ссылке типа site.ru/download/file.php?id=55. Но некоторые все же доступны... не могу установить с чем это связано. Сначала подумал что доступны аттачи с id=0, но нет.

Может я не все правки сделал?
file.php
includes/function_posting.php
includes/function_content.php
правильно?
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Re: Доработка вложений

Сообщение HAMMER663 »

sweetah возможно и есть еще какие-то файлы, которые я не учел.
расскажите какие именно аттачи доступны по ссылке вида /download/file.php?id=55
sweetah
phpBB 2.0.6
Сообщения: 505
Стаж: 14 лет 2 месяца
Благодарил (а): 107 раз
Поблагодарили: 26 раз

Re: Доработка вложений

Сообщение sweetah »

Все вложения - картинки. Больше ничего не могу сказать. [ссылку убрал...]. Причем из-под гостя пропадает одно вложение. Из-под администратора пропадает другое (свое же). Из-под testuser все вложения на месте.
testuser
testtest
Последний раз редактировалось sweetah 16.07.2011 22:47, всего редактировалось 1 раз.
Аватара пользователя
iМаньяк
phpBB 2.0.0
Сообщения: 200
Стаж: 13 лет 7 месяцев
Благодарил (а): 32 раза
Поблагодарили: 3 раза

Re: Доработка вложений

Сообщение iМаньяк »

Подскажите кто может можно сделать ссылку на изображения вида http://site.ru/forum/files/nazvanie_faila.png и при загрузке файла 1.png если таковой уже имеется то просто изменить имя на к примеру дату загрузки 160611_1.png
alex88_9
phpBB 1.4.4
Сообщения: 133
Стаж: 11 лет 8 месяцев
Благодарил (а): 34 раза
Контактная информация:

Re: Доработка вложений

Сообщение alex88_9 »

А какой в итоге последний вариант? Который в первом сообщении или этот Доработка вложений Или оба нужно устанавливать?
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 13 лет 11 месяцев
Откуда: Сергиев Посад
Благодарил (а): 374 раза
Поблагодарили: 727 раз
Контактная информация:

Re: Доработка вложений

Сообщение владимир1983 »

В первом сообщении темы есть ссылка на Итоговый вариант.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Shredder
Former team member
Сообщения: 2217
Стаж: 15 лет 3 месяца
Благодарил (а): 236 раз
Поблагодарили: 561 раз
Контактная информация:

Re: Доработка вложений

Сообщение Shredder »

А в чём смысл этих манипуляций, если не секрет?
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 13 лет 11 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз
Контактная информация:

Re: Доработка вложений

Сообщение HAMMER663 »

Shredder смысл в том чтоб любой юзер не смог скачать вложение по прямой ссылке http://site.ru/download/file.php?id=55.
То есть если спрятать вложение под hide, то скачать это вложение всё равно можно методом подбора id вложения
Cmepka
phpBB 1.4.0
Сообщения: 31
Стаж: 11 лет 11 месяцев
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Доработка вложений

Сообщение Cmepka »

Описание проблемы: ссылки открываются всё-равно по ID, хотя после ID слато отображаться ссесия и хеш какой-то...
Произведенные изменения, после которых начались неполадки: Изменял три файла по инструкции
Версия phpBB: 3.0.12
Используемые стили: subsilver2
Используемые моды: Чистый форум + регистрация через СМС-шлюз + автомод 1.0.2 + быстрая цитата (доработка стандартной)
Версия PHP:
Используемая СУБД и её версия:
Ссылка на конференцию: http://f1.excellent.ua/viewtopic.php?f=2&t=1
Есть ли у вас тестовый аккаунт: login: 123456 ; pass: 123456
Использовался ли поиск для решения проблемы:
Если да, то какие запросы вы использовали:
Закрыто

Вернуться в «Для авторов (phpBB 3.0.x)»