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

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

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

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

Сообщение HAMMER663 » 10.02.2011 22:45

при скачивании файла ссылка имеет вид /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
Сообщения: 2028
Зарегистрирован: 17.04.2010 12:59
Откуда: Зеленоград
Благодарил (а): 71 раз
Поблагодарили: 246 раз
Контактная информация:

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

Сообщение HAMMER663 » 11.02.2011 18:09

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

Добавлено спустя 55 минут 38 секунд:
так как мне никто не помог.. ладно.всем спасибо :)

Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Зарегистрирован: 14.12.2010 16:15
Откуда: KZN
Благодарил (а): 94 раза
Поблагодарили: 189 раз
Контактная информация:

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

Сообщение Айдар » 11.02.2011 19:06

HAMMER663 писал(а):где файл, который отвечает за вывод аттачей в сообщении пользователей?
viewtopic.php
Имеет смысл покопаться в /includes/functions_posting.php
In Web We Trust

Аватара пользователя
HAMMER663
Former team member
Сообщения: 2028
Зарегистрирован: 17.04.2010 12:59
Откуда: Зеленоград
Благодарил (а): 71 раз
Поблагодарили: 246 раз
Контактная информация:

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

Сообщение HAMMER663 » 11.02.2011 19:38

Айдар писал(а):viewtopic.php
нету там
Айдар писал(а):Имеет смысл покопаться в /includes/functions_posting.php
я там уже изменения сделал

Аватара пользователя
HAMMER663
Former team member
Сообщения: 2028
Зарегистрирован: 17.04.2010 12:59
Откуда: Зеленоград
Благодарил (а): 71 раз
Поблагодарили: 246 раз
Контактная информация:

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

Сообщение HAMMER663 » 16.02.2011 14:19

открываем файл 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
Сообщения: 501
Зарегистрирован: 26.01.2010 14:43
Благодарил (а): 106 раз
Поблагодарили: 26 раз

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

Сообщение sweetah » 24.05.2011 20:01

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

Может я не все правки сделал?
file.php
includes/function_posting.php
includes/function_content.php
правильно?

Аватара пользователя
HAMMER663
Former team member
Сообщения: 2028
Зарегистрирован: 17.04.2010 12:59
Откуда: Зеленоград
Благодарил (а): 71 раз
Поблагодарили: 246 раз
Контактная информация:

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

Сообщение HAMMER663 » 24.05.2011 20:52

sweetah возможно и есть еще какие-то файлы, которые я не учел.
расскажите какие именно аттачи доступны по ссылке вида /download/file.php?id=55

Аватара пользователя
sweetah
phpBB 2.0.6
Сообщения: 501
Зарегистрирован: 26.01.2010 14:43
Благодарил (а): 106 раз
Поблагодарили: 26 раз

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

Сообщение sweetah » 24.05.2011 21:25

Все вложения - картинки. Больше ничего не могу сказать. [ссылку убрал...]. Причем из-под гостя пропадает одно вложение. Из-под администратора пропадает другое (свое же). Из-под testuser все вложения на месте.
testuser
testtest
Последний раз редактировалось sweetah 16.07.2011 22:47, всего редактировалось 1 раз.

Аватара пользователя
iМаньяк
phpBB 2.0.0
Сообщения: 200
Зарегистрирован: 20.08.2010 15:16
Благодарил (а): 32 раза
Поблагодарили: 3 раза

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

Сообщение iМаньяк » 16.06.2011 19:22

Подскажите кто может можно сделать ссылку на изображения вида http://site.ru/forum/files/nazvanie_faila.png и при загрузке файла 1.png если таковой уже имеется то просто изменить имя на к примеру дату загрузки 160611_1.png

alex88_9
phpBB 1.4.4
Сообщения: 133
Зарегистрирован: 01.07.2012 11:52
Благодарил (а): 34 раза
Контактная информация:

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

Сообщение alex88_9 » 14.10.2013 23:14

А какой в итоге последний вариант? Который в первом сообщении или этот Доработка вложений Или оба нужно устанавливать?

Аватара пользователя
владимир1983
phpBB 3.1.9
Сообщения: 5954
Зарегистрирован: 27.04.2010 2:17
Откуда: Сергиев Посад
Благодарил (а): 391 раз
Поблагодарили: 730 раз
Контактная информация:

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

Сообщение владимир1983 » 15.10.2013 8:26

В первом сообщении темы есть ссылка на Итоговый вариант.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)

Shredder
Former team member
Сообщения: 2177
Зарегистрирован: 14.12.2008 10:18
Благодарил (а): 211 раз
Поблагодарили: 547 раз
Контактная информация:

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

Сообщение Shredder » 15.10.2013 8:36

А в чём смысл этих манипуляций, если не секрет?

Аватара пользователя
HAMMER663
Former team member
Сообщения: 2028
Зарегистрирован: 17.04.2010 12:59
Откуда: Зеленоград
Благодарил (а): 71 раз
Поблагодарили: 246 раз
Контактная информация:

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

Сообщение HAMMER663 » 15.10.2013 21:28

Shredder смысл в том чтоб любой юзер не смог скачать вложение по прямой ссылке http://site.ru/download/file.php?id=55.
То есть если спрятать вложение под hide, то скачать это вложение всё равно можно методом подбора id вложения

Cmepka
phpBB 1.4.0
Сообщения: 31
Зарегистрирован: 05.04.2012 23:20
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Сообщение Cmepka » 10.01.2014 2:56

Описание проблемы: ссылки открываются всё-равно по 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)»