Форум сетевых администраторов
Показаны 15 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=65)
-- Отдельный список закаченных файлов на форум (http://netadmin.ws/forum/showthread.php?threadid=6459)


Помещено Isvet 08-09-2003 в 00:23:

Отдельный список закаченных файлов на форум

Есть какой то форум например "Тест"
В форуме "Тест" выкладывают файлы.
Так вот можно ли получить хоть какой нибуть список файлов которые были выложены в этом форуме атачем.
При этом желательно был бы ретинг по скачиванию и по размерам


Помещено MarKer 08-09-2003 в 04:16:

Теоретически - можно.
Но практически - есть одна проблема - в базе с аттачами не указывается раздел, в котором находится сообщение к которому этот аттач прикреплен.
Из-за этого нужно брать аттач, смотреть к какому сообщению он прикреплен, потом смотреть в какой теме находится это сообщение и только потом можно будет узнать в каком разделе находится эта тема и, соответственно - аттач.
В vBulletin 3 в этим попроще. Намного, я бы даже сказал

MarKer добавил 08-09-2003 в 02:15:43:
Вот накропал кое-что...
Выкладываю в виде файла, т.к. иначе код разбивается.


Помещено Isvet 08-09-2003 в 08:22:

Вопрос!!!!
А что с этим делать?


Помещено MarKer 08-09-2003 в 15:09:

Isvet
Хех, ну можно скинуть в отдельный PHP-файл, прописать данные для коннекта к базе...

PHP:


mysql_connect
("host","user","password");
mysql_select_db("database");


...оформить по-желанию, и использовать

Можно приспособить под это дело один из существующих файлов форума... будет нечто вроде хака.

В общем, пока это голый код


Помещено Isvet 08-09-2003 в 16:21:

не работает

PHP:

<?php
mysql_connect
("host","user","password"); 
mysql_select_db("database");


$forumid_to_get="28"; // ID форума откуда брать аттачи
$get_attach_list=mysql_query("SELECT `attachmentid` FROM `attachment` ORDER BY `attachmentid` ASC");

for(
$i=0; $i<mysql_num_rows($get_attach_list); $i++) {
        
$attach_list=mysql_fetch_array($get_attach_list);
        
$post_data=mysql_fetch_array(mysql_query("SELECT `threadid` FROM `post` WHERE `attachmentid`='$attach_list[attachmentid]'"));

        
$thread_info=mysql_fetch_array(mysql_query("SELECT `forumid` FROM `thread` WHERE `threadid`='$post_data[threadid]'"));

        if(
$thread_info['forumid']==$forumid_to_get) {
                
$forum_attach[]=$attach_list['attachmentid'];
        }
}

foreach(
$forum_attach as $a => $b) {
$attach_info=mysql_fetch_array(mysql_query("SELECT  `filename`,`dateline`,`userid`,`counter`,LENGTH(`f
iledata`) FROM `attachment` WHERE `attachmentid`='
$b'"));

$sent_by=mysql_fetch_array(mysql_query("SELECT `username` FROM `user` WHERE `userid`='$attach_info[userid]'"));

echo 
"Номер: {$b}<br>
Файл: 
{$attach_info['filename']}<br>
Ð_азмер: 
{$attach_info['LENGTH(`filedata`)']} байт<br>
Дата: "
.date('d-m-Y (H:i)',$attach_info['dateline'])."<br>
Автор: 
{$sent_by['username']}<br>
Скачан: 
{$attach_info['counter']} раз(а)<br><br>";
}

?>


Помещено MarKer 08-09-2003 в 17:00:

Isvet
Ты надеюсь догадался указать свои данные для доступа к базе данных?

MarKer добавил 08-09-2003 в 17:04:22:
Если не горит - я могу к завтрашнему дню сделать полноценный хак для vB2. Сегодня просто времени нет :/


Помещено Vanish 08-09-2003 в 17:37:

MarKer проще поле одно в таблицу добавить с ид форума, а потом одним запросом все выбирать.
Но есть и "Мы пойдем другим путем!".

__________________
No pity, no mercy, no regret.


Помещено MarKer 08-09-2003 в 17:51:

Vanish
Если форум "чистый" - проще.
Если же на форуме уже есть аттачи - нужно писать скрипт для индексации старых + править код самого форума на добавление новых аттачей.
Мой же вариант работает вообще без вмешательства в структуру базы данных форума и в его код.
Так что мой вариант все же будет проще
Хотя с точки зрения оптимизации - чуть хуже.


Помещено Isvet 08-09-2003 в 18:20:

quote:
Ты надеюсь догадался указать свои данные для доступа к базе данных?

А где эта?
quote:
Если не горит - я могу к завтрашнему дню сделать полноценный хак для vB2. Сегодня просто времени нет :/

Нет не горит.... Хотелось бы видеть как хак и как полноценный файл который можно будит прикрутить к нюки...


Помещено MarKer 08-09-2003 в 18:41:

quote:
А где эта?


PHP:

mysql_connect
("host","user","password"); 
mysql_select_db("database");


host - сервер на котором расположена база данных (обычно localhost)
user - имя пользователя для доступа к базе
password - пароль пользователя для доступа к базе
database - название базы где установлен форум

ЗЫ. Насчет хака - без проблем, а вот полноценного файла который можно было бы прикрутить к нюке - файл могу сделать, но вот как прикрутить... не знаю, никогда не делал модулей. Можно просто ссылку поставить...


Помещено Vanish 08-09-2003 в 20:07:

MarKer запросом больше, запросом меньше, знаю знаю сам так писал пока не поумнел.

__________________
No pity, no mercy, no regret.


Помещено Isvet 08-09-2003 в 22:27:

quote:
host - сервер на котором расположена база данных (обычно localhost)
user - имя пользователя для доступа к базе
password - пароль пользователя для доступа к базе
database - название базы где установлен форум

Опс ставил на хосте.... А там поставленно лимит опрос скрипта..
Щас поставли на локалхосте все работает.. Только пользоваться невозможно У меня на форуме где-то 1500 файлов обрабатывала где-то минут 5...


Помещено e1 09-09-2003 в 17:22:

Isvet
во! поэтому нужно добавлять поле "ид", потом делать индексацию, которая будет делаться минут 5, а потом спокойненько юзать


Помещено Vanish 09-09-2003 в 18:10:

e1 и после этого они со мной еще спорят

__________________
No pity, no mercy, no regret.


Помещено e1 10-09-2003 в 06:06:

Vanish
ну, молодые Ышо, неопытные


Формат времени GMT. Текущее время 18:53.
Показаны 15 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.