[PHP] Postowanie na forum phpBB2

[PHP] Postowanie na forum phpBB2
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

witam,
pisze sobie skrypcik który zalogowałby się na moje konto admina na forumie, po czym dodal nowy temat w jednym z działów na tymże forum.. i za nic nie moge sie polapac w tych sesjach i zabezpieczeniach w phpbb2 :/ hakera ze mnie nie bedzie, skoro nawet postowac nie potrafie :P

czy ktos zna taki skrypcik, albo mial podobny problem z sesjami i jakos go rozwiązal?

pozdrawiam


0

tak, ja miałem podobny problem z sesjami i go rozwiązałem

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

konczy sie rok 2008, a ty otrzymujesz Nagrodę Roku za Najbardziej_Użyteczną_Odpowiedź_Roku ® :/


deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 12 lat
0

dzek69, uważaj bo masz szansę otrzymać nagrodę. 0 konkretów, porównywanie siebie do hackera, pisanie spambota...
W Twoje forum ciężko uwierzyć, co to za admin co nie ma czasu sam zajrzeć.

...a za 'forumie' zostałeś nominowany w kategorii 'analfabeta roku'.


I nie udawaj, że rozumiesz.
dodekam
  • Rejestracja:około 19 lat
  • Ostatnio:prawie 16 lat
0

niby Perl umiera, ale LWP jest wręcz idealnie do takich zadań przystosowane. jednakże wnioskując ze stylu wypowiedzi i poziomu pytania mocno wątpię w twoje powodzenie.

edit:
nie doczytałem: w PHP robienie takich rzeczy (i właściwie innych też) to męka, jeżeli nie znasz protokołu http na tyle, że mógłbyś przeglądać strony telnetem.

edit2:
chociaż w sumie teraz jest curl do PHP, to może i łatwiej


There is no system but GNU, and Linux is one of its kernels.
JID: dodek@jabber.org
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0
dzek69 napisał(a)

który zalogowałby się na moje konto admina na forumie, po czym dodal nowy temat

Jak jest dostęp do serwera to styknie MySQL. Jak nie to cURL.


Women were the reason I became a monk - and, ah, the reason I switched back...
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

@deus - dzieki za profesjonalne zjechanie :/
uzycie "forumie" bylo celowe, jezyk polski znam lepiej niz jakieś 98% polskich internautów niestety (już nawet ktoś MNIE zjechał, bo miałem czelność poprawiać czyjeś ortografy..).. a swoja droga nawet jeżeli BYŁBYM analfabetą to usłyszenie czegos takiego nie byłoby miłe..
z tym hakerem, to nawet nie wiem co Ci odpowiedziec, ale ja sie nie próbuję równać z hakerami na pewno..
i po 3 - NIE PISZE spambota! Dużo ich przecież na google znajdę, nie potrzebuję mieć własnego.. Jeżeli nie wierzysz w moją "historyjkę" to trudno, nie masz obowiązku..

@dodekam - napisałem, działa na phpBB2.. Kolejny problem opisze poniżej..

@Demonical Monk - zakładam pracę zdalną, więc tylko cURL :)

KONIEC OT.

Mój skrypt działa, to nie było takie trudne jak myślałem..
Problemem jest teraz to, że z localhosta mi działa na każdym forum, a z VPS-a nie działa na jednym jedynym forum..

HTTP/1.1 417 Expectation Failed
Connection: close
Content-Type: text/html
Content-Length: 363
Date: Thu, 01 Jan 2009 13:12:41 GMT
Server: Uber Apache

417 - Expectation Failed

dzieje sie to na ostatnim kroku (po zalogowaniu, pobraniu sid itd) - przy postowaniu..
O co chodzi?

edit: odnalazłem o co biega..
Ale to wina serwera niby, nie moja, więc dlaczego z localhosta działa?

Na zdalnym tez juz dziala :)
jednak jak ktos cos na ten temat wie to prosze o info..
dziekuje, pozdrawiam,
no i Szcześliwego Nowego Roku!
~dzek69


Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Największym błędem co drugiego 4programowca jest opisywanie problemu, a w efekcie zapomnienie o kodzie -_-


Women were the reason I became a monk - and, ah, the reason I switched back...
dodekam
  • Rejestracja:około 19 lat
  • Ostatnio:prawie 16 lat
0
dzek69 napisał(a)

@dodekam - napisałem, działa na phpBB2.. Kolejny problem opisze poniżej..

Chodziło mi o potencjalne użycie LWP przez ciebie.


There is no system but GNU, and Linux is one of its kernels.
JID: dodek@jabber.org
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

@ Demonical Monk - kodu za bardzo nie bylo do pokazywania, więc nie dodałem, tylko dlatego.. pytanie bylo bardziej o gotowe rozwiazanie, to po co komus kod nie sluzacy niczemu, i pewnie kompromitujacy mnie jako programiste:P?

@ dodekam - na razie jestem zadowolony z wyniku, na "wyzszy poziom" jeszcze za wczesnie dla mnie (jestem samoukiem, niby dobrze, ale czasem jest problem)

A pytanie czemu na localhoście dziala, a na zdalnym nie, wciaz aktualne .. (btw: na obu najnowszy Apache [tzn byl najnowszy z miesiac temu/teraz nie wiem])


Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Dobra, nie wytrzymałem... NO KUR** MAĆ PODAJ TEN KOD! Jak połowa chcesz, żeby im napisać, podać na tacy, a oni jeszcze będą wybrzydzać że polskie znaki się nie pokazują, albo wykonywanie skryptu trwa sekundę dłużej niż sobie wymarzył.


Women were the reason I became a monk - and, ah, the reason I switched back...
deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 12 lat
0

Niech zgadnę, kod pisany i odpadalny na windowsie, na localhoście działa, zdalnie na linuksie już nie... Wiesz, Windows w przeciwieństwie do Linuksa nie rozróżnia wielkości liter w nazwach plików - pewnie z tym zawaliłeś. No ale skoro ani kodu ani tego jak 'nie działa' podać nie chcesz...

BTW:

dzek69 napisał(a)

uzycie "forumie" bylo celowe, jezyk polski znam lepiej niz jakieś 98% polskich internautów niestety (już nawet ktoś MNIE zjechał, bo miałem czelność poprawiać czyjeś ortografy..)

dzek69 napisał(a)

@ dodekam - na razie jestem zadowolony z wyniku


I nie udawaj, że rozumiesz.
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

No ludzie, spokojnie, JUŻ DZIAŁA..
deus, czytaj uwazniej, -to nie problem z polskimi znakami..

Macie dzialajacy kod, nie wiem po co wam, ale skoro chcecie to macie..

Kopiuj
function createPostString($aPostFields) {
    foreach ($aPostFields as $key => $value) {
        $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
    }
    return implode('&', $aPostFields);
}

function postONphpBB2($url, $username, $password, $forum, $subject, $description, $message, $cookie) {
	$ch=curl_init();
# LOGGING IN
	$form_url=$url.'login.php';
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$username&password=$password&login=Log+In");
	curl_setopt($ch, CURLOPT_HEADER, 0);
	$x=curl_exec($ch);
# POSTING A MESSAGE
	$form_url=$url.'posting.php?mode=newtopic&f='.$forum;
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_HEADER, 0);
	$page=curl_exec($ch);
# GETTING sid
	if (!preg_match ('/logout=true&sid=(.{32})"/', $page, $sid)) {
		return false;
	}
	echo $sid[1];
#######################################
# setting POST FIELDS
$postFields['subject'] = $subject;
$postFields['description'] = $description;
#
$postFields['tag_select'] = '';
$postFields['addbbcode18'] = urldecode('%23');
$postFields['addbbcode20'] = '12';
$postFields['helpbox'] = 'xD';
#
$postFields['message'] = $message;
#
$postFields['via'] = md5(time());
$postFields['attach_sig'] = 'on';
$postFields['send_pm'] = 'on';
$postFields['poll_title'] = '';
$postFields['add_poll_option_text'] = '';
$postFields['poll_length'] = '';
$postFields['mode'] = 'newtopic';
#
$postFields['sid'] = $sid[1];
#
$postFields['f'] = $forum;
$postFields['post'] = 'Submit';
#######################################
	$form_url=$url.'posting.php?mode=newtopic&f='.$forum;
	curl_setopt($ch, CURLOPT_URL, $form_url);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_REFERER, $form_url);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie.'.cookie');
	curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields));
	curl_setopt($ch, CURLOPT_HEADER, 1);
	# HTTP 1.0 connection becouse of a bug in some http servers when sending long POST
	curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.0);
	$xxx=curl_exec($ch);
	curl_close($ch);
	if (!preg_match('/url=viewtopic.php\?p=([0-9]*)#([0-9]*)">/',$xxx,$topicid)) {
		return false;
	}
	else {
		return $topicid[1];
	}
}

Ja nikomu nie kazalem pisac dla mnie wielkiego skryptu od zera - zaznaczam ponownie - szukalem gotowego JUZ DOSTEPNEGO rozwiazania..

ps. tak, wiem, "na razie" i pare tego typu slowek mi nie wychodzi (sugestia T9 :/)..

ale nie napisalem tego np tak "jurz działa" itd..


deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 12 lat
0
dzek69 napisał(a)

deus, czytaj uwazniej, -to nie problem z polskimi znakami

deus napisał(a)

Windows w przeciwieństwie do Linuksa nie rozróżnia wielkości liter w nazwach plików - pewnie z tym zawaliłeś.

No chyba kpisz...


I nie udawaj, że rozumiesz.
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

niewyspany bylem, Demonical mowil cos o polskich znakach..
dobra, sorry, nic wiecej nie chce, wysmiales mnie publicznie jak tylko mogles, mam nadzieje ze dzieki temu poczules sie lepiej.. temat do zamknięcia


deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 12 lat
0

Nie, nie poczułem się lepiej, Demonical Monk też się mocno wkurzył, oczekujecie rozwiązania problemu a sami sprawę utrudniacie. Jak większość nie podałeś konkretów, ostatnie pytanie zaś było mistrzostwem świata, 'Ale to wina serwera niby, nie moja, więc dlaczego z localhosta działa?'. Skąd mamy niby wiedzić skoro nie podałeś kodu, informacji o konfiguracji serwera ani tak naprawdę nawet zdania o tym co faktycznie robisz. Rzuciłeś się na mnie za moją krytykę 'z urzędu', chwaląc się znajomością ortografii i nakazując mi czytać ze zrozumieniem, podczas gdy to Ty masz z tym najwyraźniej problemy.

Oczekujesz pomocy uniemożliwiając jej udzielenie, nie dziw się, że zostajesz potępiony; nie tylko Ty masz prawo czegoś oczekiwać i oceniać innych, udzielenie pomocy nie jest niczyim obowiązkiem, to dobra wola.

Wątek zamykam.


I nie udawaj, że rozumiesz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.