Студия креативных разработок DevArt.PRO.
Разработка сайтов и форумов под ключ!
Сильнейшая команда в России по vBulletin - читать подробнее...
 
 
 
 

 
 
Здесь скоро опять что то будет...
 
 
 
 
 
 
Loading

Вернуться   форум vBSupport.org > vBulletin > vBulletin 3.5.x > Вопросы по vBulletin 3.5

Объявления
  • Изменения в правах
  • Каталог Фрилансеров
  • Добро пожаловать!
  • Premoderation
  • Новичкам!
  • For English speaking users
Ответ
 
Опции темы Опции просмотра
Старый 12.08.2005, 02:46   #1
Простоузер
Question Ищу хак - программное создание темы

Нужен хак (или пример кода) чтобы внешней программой автоматически создавать темы в форуме.
Типа процедурка с параметрами (форум, пользователь, пароль, заголовок, сообщение, иконка)...
  Ответить с цитированием
Рекламка
Реклама на форуме
Старый 13.08.2005, 18:52   #2
vGhost
Продвинутый
а что внешнии программы формы субмитеть разучились? Обязательно надо хак на форум?
  Ответить с цитированием
Старый 15.08.2005, 00:28   #3
Zeves
Простоузер
Внешние программы формы субмитеть не разучились, но для того чтобы запись прошла - нужно чтоб были сформированны все нужные поля по нужным правилам...

к примеру:
_POST["posthash"] ea941123fca614a2819669b265a1c09c
_COOKIE["kbpassword"] fc9b02aa7ba153c664a1c8bf47db0c19
_COOKIE["kbsessionhash"] c9dbf314b300c0aa0bd3fc87ca5929cd
_COOKIE["kbforum_view"] d204d1beabd9fb45ebc08cec92ce235aa-1-{i-8_i-1124050499_}

Вот я и хотел чтоб можно было в некую функцию передавать только текст мессаги, заголовок и юзера, а она все что нужно правильно формировала по нужным правилам.
  Ответить с цитированием
Старый 15.08.2005, 21:44   #4
vGhost
Продвинутый
А если чуть чуть подумать головой то всё уже давно написано надо только пользоваться.
Открываеш файл newreply.php и СМОТРИШ туды.
Немного подумав у меня получилось вот что:

И так сначала регистрируеш на боарде юзера - бота.
логинишся этим юзером на боарду С УСТАНОВЛЕННОЙ галочкой запомнить меня.
далее в папке с файлами форумаа создаёш файл showmycookies.php следующего содержимого:
PHP код:
<?
Echo '<pre>';
Print_R($_COOKIES);
?>
Заходиш на этот файл.

Далее создаёш botreply.php с таким содержимыми (тот минимум что нужен чтоб постить который я выдрал из newreply.php) в который подставляеш подставляеш то что нужно из showmycookies.php место моих значений.

PHP код:
<?

Error_Reporting
(E_ALL & ~E_NOTICE);
Define('GET_EDIT_TEMPLATES'true);
Define('THIS_SCRIPT''newreply');


$_COOKIE['bbpassword']    = 'fc9b02aa7ba153c664a1c8bf47db0c19';
$_COOKIE['bbuserid']    = 1;
If(!Empty(
$_GET['f']))
    
$_REQUEST['t'] = $_POST['t'] = $_GET['t'];
Else
    
$_REQUEST['f'] = $_POST['f'] = $_GET['f'];


require_once(
'./global.php');
require_once(
DIR '/includes/functions_newpost.php');

$newpost['message'] = $_GET['message'];
$newpost['title']   = $_GET['title'];

If(!Empty(
$_GET['f']) && IntVal($_GET['f']))
    
build_new_post('thread'$foruminfo, array(), array(), $newpost$errors);
Else
    
build_new_post('reply'$foruminfo$threadinfo$postinfo$newpost$errors);

?>
Юзать это всё вот таким макаром:
_http://mysite.ru/botreply.php?title=test_title&message=test_message&t=1

t - айди темы куда отвечаеш.
Нужна новая тема? Меняеш t на f где f - айди форума.
Сложно?

------------------------------------------------------------

Цитата:
Внешние программы формы субмитеть не разучились, но для того чтобы запись прошла - нужно чтоб были сформированны все нужные поля по нужным правилам...
Бред чистой воды.
Передай куками:
'bbpassword' = 'fc9b02aa7ba153c664a1c8bf47db0c19';
'bbuserid' = 1;

титл, мессажд, треадид и всё. Больше нечего не надо.
5 переменных. Трудно?
Наглядный пример скрипта я написал выше.

Добавлено через 02 минут(ы)
Да чуть не забыл, спам оборона сего скрипта (не дай бог про него прознают кто то ещё кроме тебя заспамят всю боарду) полностью возлагается на тебя самого
  Ответить с цитированием
Старый 16.08.2005, 11:33   #5
Zeves
Простоузер
Спасибо за комментарии. Хотя у меня все это не работает (свои параметры подставил), но покапаю тогда уж сам...

Добавлено:
странно - добавлять добавляет, но почему-то ставит их отмодорированными и не показывает обычным юзерам... :(

Последний раз редактировалось Zeves; 16.08.2005 в 17:27..
  Ответить с цитированием
Старый 17.08.2005, 01:06   #6
vGhost
Продвинутый
Цитата:
странно - добавлять добавляет, но почему-то ставит их отмодорированными и не показывает обычным юзерам...
Копай настройки форумам и !! права доступа этого ботюзера.
Я тестил эту фигню на локальном форуме, и на реальнм. В обоих случаях работало на ура.

Ты этого бота активировал(если активацию форум хочет) Ты его правами постить снабдил?

З.Ы. версия у меня 3.5.0 rc2 взятая с этого ресурса.
Ессно всё тестилось на ней.

Добавлено через 03 минут(ы)
да вот ещё что вот тут
$_COOKIE['bbpassword']
$_COOKIE['bbuserid']
у меня на боарде стоит куки префикс bb, судя по тому что ты писал
_COOKIE["kbpassword"]
у тебя kb, поменять в скрипте не забыл?

Добавлено через 04 минут(ы)
И всётаки я больше чем уверен этот юзер у тебя ходит в премодерируемой группе юзеров или просто не на все форумы обладает правами.
Попробуй сам от него зайти и отпостить в том же форуме или теме, чтто то мне кажется эффект будет таким же.
  Ответить с цитированием
Старый 19.08.2005, 08:17   #7
Zeves
Простоузер
С добавлением разобрался - добавляет. Но, есть некоторое количество проблем, связанных с авторизацией: человек, запускающий скрипт постинга должен быть залогинен, причем после отработки скрипта он получает сессию бота. Последнюю проблему решил простым logoff
PHP код:
$vbulletin->input->clean_gpc('r''logouthash'TYPE_STR);
process_logout(); 
в скрипте, а вот с первой не понятно. Тема вообще добавляется при некоторых условиях от первоначального пользователя, а не от бота... :(
  Ответить с цитированием
Старый 19.08.2005, 17:36   #8
vGhost
Продвинутый
Какой нафиг человек? Мы кажется говорили о ПРОГРАМНОМ способе создания тем НЕ ТАК ЛИ? Т.е. где НЕТ не какого человека а есть программа которая открывает сокет и шлёт на сервер данные. Где НЕТ НИ КАКИХ браузеров, кукисов и прочего. Разве НЕТ? Я это делал с расчётом на это. И тестил через curl, wget, fopen.

Если всётаки это будет человек с формой постинга и БРАУЗЕРОМ, то надо было об этом и говорить. А не путать людей.

Если это человек я не поимаю что тебе мешает просто вставить форму постинга на форум/тему в любое место сайта?
  Ответить с цитированием
Старый 20.08.2005, 00:44   #9
Zeves
Простоузер
Объясняю - программу по любому запускает человек (если она не кронтабе). У этого чела есть браузер (а куда он нафиг денется), в котором эта программа и крутится. Ну так вот - если в этом самом браузере не установлены предварительно некие параметры с форума, то
Цитата:
Юзать это всё вот таким макаром:
_http://mysite.ru/botreply.php?title=test_title&message=test_message&t=1
нифига не срабатывает и выдает ошибку ("Ваше имя пользователя не может быть короче 3 символов").

Поясню зачем мне это надо - есть система сообщений в неком сайте, которая много на что прямо и косвенно завязана внутренне (то есть нельзя использовать наоборот - сообщения форума в ней) и требуется к сообщению привязать ссылку "обсудить". При клике на ссылку автоматом бы создавалась тема в заранее отведенном форуме (если нет еще таковой - эта проверка делается не форумом, а системой на основании некого своего флага), а юзер перебрасывался на эту ветку со своим логином (или без оного, если его не было).
На настоящий момент сообщение создается только если браузер логинен в форуме (причем создается именно под этим логином, а не от имени того ID, который прописываю)
  Ответить с цитированием
Старый 20.08.2005, 15:00   #10
vGhost
Продвинутый
Цитата:
Объясняю - программу по любому запускает человек (если она не кронтабе).
Это не програмный постинг поста а обычный.
Програмный постинг это допустим у меня есть 4 разных сайта на 4 доменах мне нужно на все одновременно запостить новость какую или ещё что, у меня есть на одном серваке скрипт где я в форму пишу а он этот скрипт постит это через сокет на 4х других открывая соединение вот с этим скриптом. Другой вариант у меня есть какая софтина на которой у меня скажем в офисе ведётся учёт каких нибудь хреней, и у меня на форуме есть тема новости или форум новости куда я пишу новости и нужно чтоб эта программа(не пхп скрипт а совтина написаная под винды на каком нидь си или делфи да на чём угодно) моя при появлении чего либо постила об этом на форум. Это есть програмный постинг.

Юзеры в браузерах могут постить от себя достаточно просто подсунуть им ФОРУМНУЮ форму с хидден ид нужной темы или форума. Всё.

Цитата:
нифига не срабатывает и выдает ошибку ("Ваше имя пользователя не может быть короче 3 символов").
Опять у тебя куками какая то хрень пеередаётся.
У тебя щас проблемам того что ты постиш через браузер, я же постил не через браузер.
Перед постингом выведи ифо и пользователе и захалть скрипт. Посмотри...
print_r($vbulletin->userinfo);exit;
попробуй ансетить все кукисы и гет пост данные раз у тебя браузер.
Т.е. вначале перед
$_COOKIE['bbpassword'] = 'fc9b02aa7ba153c664a1c8bf47db0c19';
$_COOKIE['bbuserid'] = 1;

вставь чёта типа
UnSet($_COOKIE);
DeleteAllData($_POST);
DeleteAllData($_GET);
DeleteAllData($_REQUEST);
Function DeleteAllData(&$Data)
{
$Allow = Array('title', 'message', 'f', 't');
ForEach($Data AS $K => $V)
If(!In_Array($K, $Allow))UnSet($Data[$K]);
}

Добавлено через 04 минут(ы)
Да ещё попробуй поиграться с подменой юзерагента, насколько мне извесно ботам форум куки не пытается ставить, посему если ты перед вызовом
require_once('./global.php');
воткнёш им в $_SERVER юзерагента скажем googlebot, то он не будет кукисы ставить и сессии менять.

Добавлено через 02 минут(ы)
хотя нет это прокатит с версией форума 3.0.х а в 3.5. эта зараза смотрит на размер куков и есть он есть то на юзерагента не смотрит, ботом считать уже не будет.
тут тебе придётся init.php поправить.....

Добавлено через 06 минут(ы)
Цитата:
На настоящий момент сообщение создается только если браузер логинен в форуме (причем создается именно под этим логином, а не от имени того Id, который прописываю)
у тебя форум ловит сэшшнхэш а не пасворд хэш который ты ему подсовываеш в скрипте, когда форум поймал сэшшнхэш на пассвордхэш он не обращает внимания. ВОТ И ВСЯ ПРОБЛЕМА!

Цитата:
Поясню зачем мне это надо - есть система сообщений в неком сайте, которая много на что прямо и косвенно завязана внутренне (то есть нельзя использовать наоборот - сообщения форума в ней) и требуется к сообщению привязать ссылку "обсудить". При клике на ссылку автоматом бы создавалась тема в заранее отведенном форуме (если нет еще таковой - эта проверка делается не форумом, а системой на основании некого своего флага), а юзер перебрасывался на эту ветку со своим логином (или без оного, если его не было).
Ужас...
Тут дизайнер нужен а не програмер.
1) Разреши на этом единственном форуме постить анонимно не зарегистрированным тобиш.
2) (если нет еще таковой - эта проверка делается не форумом, а системой на основании некого своего флага) делаеш эту проверку а далее подсовываеш ему форму постинга из форумского шаблона либо для новой темы либо для нового ответа. ВСЁ!

Последний раз редактировалось vGhost; 20.08.2005 в 15:05..
  Ответить с цитированием
Ответ

Закладки

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



 
 

Текущее время: 05:17 26.05.2012. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.6.9
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. Перевод: zCarot