logowanie do Turbobit

logowanie do Turbobit
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0

Jedna strona jest bardzo dziwna z logowaniem. Czy ktoś z was ma tam konto (choćby darmowe?) i czas by sprawdzić w chwilę, czy potrafilibyście zalogować się przez delphi lub c++ z komponentem idHttp?

http://turbobit.net/

nawet program JDownloader nie potrafi się tam zalogować, choć dawniej potrafił bez problemu. Może wprowadzili na stronie jakieś utrudnienia. (nawet logowanie z na żywca skopiowanymy cookies z wireshark nie zadziałało mi, może coś źle robiłem). Także zwracam się do ekspertów :). Nie oczekuję żadnego kodu, co najwyżej porady jakiejś i tyle. I tylko dla tego serwisu, bo inne są normalniejsze.

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
  • Lokalizacja:Gorlice
1

Nie widzę żadnego problemu, a co do porady to nie wiem co radzić gdyż nie dałeś swojego kodu więc dam gotowca skoru już napisałem jak sprawdzałem.

Kopiuj
const
  USER_AGENT = 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1';
  CONTENT_TYPE = 'application/x-www-form-urlencoded';
  BASE_URL = 'http://turbobit.net/';
  LOGIN_URL = 'user/login';
  //%0:s - email
  //%1:s - haslo
  LOGIN_FORM_DATA_FRMT = 'user[login]=%0:s&user[pass]=%1:s&user[Bsubmit]=Zaloguj+si%%C4%%99';
var
  sl: TStringList;
begin
  IdHTTP1.HandleRedirects:= True;
  IdHTTP1.Request.UserAgent:= USER_AGENT;
  IdHTTP1.Get(BASE_URL);
  IdHTTP1.Request.ContentType:= CONTENT_TYPE;
  IdHTTP1.Request.Referer:= BASE_URL;
  sl:= TStringList.Create;
  try
  sl.Add(Format(LOGIN_FORM_DATA_FRMT, ['login@dupa.pl', 'pass']));
  Memo1.Text:= IdHTTP1.Post(BASE_URL + LOGIN_URL, sl);
  finally
  sl.Free;
  end;
end;

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0

dziękuję za kod, ale i tak strona nie zwraca, że zalogowało mnie. Nadal dostaje się odpowiedź z oknami do wpisania loginu i hasła świadczących, że nie jest się zalogowanym (zresztą cookies trzeba wysłać i nawet jak cookies wysyłałem [może źle, ale wydaje mi się, że dobrze, bo w wireshark wysyłało niby dobrze]) to i tak było coś nie tak.
Także jak masz jeszcze jedną chwilę to spróbuj sprawdzić za co ponownie będę wdzięczny. I dziwi mnie też to, że JDownloader nie chce logować na tej stronie od jakiegoś czasu (przejrzałem nawet co jdownloader wysyła do strony).

Weź nawet dla przykładu odpal Wireshark i skopiuj cookie (długie jest) i później w programie wyślij to ciastko do strony, nie zwróci ci kodu, że jesteś zalogowany, tylko dostaniesz kod taki jak osoba niezalogowana (w notatniku sobie wklej ten otrzymany kod źródłowy strony i ctrl + f i rzuć okiem, czy login jest w kodzie lub wyraz do wylogowania)

edytowany 2x, ostatnio: nowe
KA
Jak to nie zwraca u mnie zwraca przecież jest w kodzie że jestem zalogowany :/
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0

@kAzek
ale piszesz, że działa ci z tym kodem, który napisałeś? Czy jeszcze dopisałeś jakiś dodatkowy?
Bo jeśli mówisz tylko o tym swoim kodzie tutaj to na milion % strona nie zwraca "strony", gdzie jest się zalogowanym. Sprawdzałem dokładnie. Nie wiem w jaki sposób ty sprawdzałeś (może ty tylko zobaczyłeś odpowiedź Set-Cookie i uznałeś, że to już informacja, że zalogowało cię, jeśli tak to jesteś w błędzie, bo możesz se podać fake dane, a i tak każe ci cookies ustawić).

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
  • Lokalizacja:Gorlice
0

Na 100% jestem zalogowany kod tylko ten co napisałem zero ustawień przy IdHTTP (tylko ten kod co napisałem z tym że hasło i login prawdziwy) nawet IdCookieMenager ani IdCompressorZLibEx nie używałem. Nie wiem może wersja Indy ma znaczenie u mnie 10.1.5 w każdym razie w kodzie strony po zalogowaniu jest email, nie ma formularza logowania zresztą wystarczy kod zapisać jako dokument .htm i ładnie wszystko widać że jestem zalogowany.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0
kAzek napisał(a):

Na 100% jestem zalogowany kod tylko ten co napisałem zero ustawień przy IdHTTP (tylko ten kod co napisałem z tym że hasło i login prawdziwy) nawet IdCookieMenager ani IdCompressorZLibEx nie używałem. Nie wiem może wersja Indy ma znaczenie u mnie 10.1.5 w każdym razie w kodzie strony po zalogowaniu jest email, nie ma formularza logowania zresztą wystarczy kod zapisać jako dokument .htm i ładnie wszystko widać że jestem zalogowany.

nie wiem jak to możliwe. Ja używam najnowszej wersji delphi (XE2). Na żywca nawet wklejałem kod twój i nic, ciągle jestem niezalogowany. Na 100% mail i PW dobry wpisałem.

O_o
Może ktoś z forum jeszcze kod przetestuje? (konto na TB szybko się zakłada, maila nie trzeba potwierdzać)

edytowany 1x, ostatnio: nowe
KA
No faktycznie pod Delphi XE2 to nie działa a pod Delphi 7 (z zainstalowanym Indy 10.1.5) działa.
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0

O_o
Dziękuję, że sprawdziłeś pod dwoma Delphi i poinformowałeś o tym. Miło z twojej strony.
Ale dlaczego dwie wersje idHTTP inne są? Teoretycznie powinny identyczne zapytania wysyłać... Nie pojmuję tego. Może jakiś ekspert się wypowie.
(wolałbym uniknąć logowania przez sockety lub w inny, dłuższy i nieprzyjemny sposób)

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:dzień
  • Lokalizacja:Gorlice
1

Coś z ciastkami było nie tak i trzeba je ręcznie obsługiwać. Podaje logowanie ale mam obawy (nie wiem na pewno bo nie sprawdzałem) że jak będziesz chciał cokolwiek zrobić na tej stronie to będziesz musiał ręcznie przewalać ciastka z Response do Request bo jakoś Indy na tej stronie tego za Ciebie nie zrobi. Nie wiem dlaczego pod Delphi 7 kod który wcześniej dałem działa a po XE2 nie ale jedno co było źle to ciasteczka nie były przekazywane a drugie to pod XE2 trzeba każde pole dodać osobno bo inaczej wysyłane było coś takiego:
Nazwa pola: user[login]
a wartość to cala reszta czyli: testturbo@gazeta.pl&user[pass]=tester1&user[submit]=Zaloguj+si%%C4%%99';
Czyli po prostu nie rozdzieliło parametrów. Jedyne co mi przychodzi na myśl to że może to być wina Unicode.

Kopiuj
const
  USER_AGENT = 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1';
  CONTENT_TYPE = 'application/x-www-form-urlencoded';
  ACCEPT_LANGUAGE = 'pl,en-us;q=0.7,en;q=0.3';
  BASE_URL = 'http://turbobit.net/';
  LOGIN_URL = 'user/login';
var
  sl: TStringList;
  cookie: string;
  i: Integer;
begin
  //IdHTTP1.Request.Accept:= 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
  IdHTTP1.Request.AcceptLanguage:= ACCEPT_LANGUAGE; //tylko aby było pl

  IdHTTP1.HandleRedirects:= True;
  IdHTTP1.Request.UserAgent:= USER_AGENT;
  IdHTTP1.Get(BASE_URL);

  for i:=0 to IdHTTP1.Response.RawHeaders.Count - 1 do
  begin
    if Pos('Set-Cookie', IdHTTP1.Response.RawHeaders.Names[i]) = 1 then
    begin //trzeba bawic sie w reczna obsluge ciastek
      cookie:= IdHTTP1.Response.RawHeaders.Strings[i];
      Delete(cookie, 1, 11);  //obciac 'Set-Cookie: '
      IdHTTP1.Request.CustomHeaders.Add('Cookie: '+ cookie);
    end;
  end;

  IdHTTP1.Request.ContentType:= CONTENT_TYPE;
  IdHTTP1.Request.Referer:= BASE_URL;
  sl:= TStringList.Create;
  sl.Encoding.GetEncoding(65001); //utf-8
  try

  sl.Add('user[login]=testturbo@gazeta.pl');
  sl.Add('user[pass]=tester1');
  sl.Add('user[submit]=Zaloguj się');

  Memo1.Text:= IdHTTP1.Post(BASE_URL + LOGIN_URL, sl);
  finally
  sl.Free;
  end;
end;

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
NO
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 12 lat
  • Postów:45
0

książęca mość, wielcem rad jestem za pomoc :)
Po prostu dziękuję, ale takie porządne dziękuję. Działa idealnie.
swoją drogą, to nauczyłeś mnie, że cookies można wysyłać razem z path expires itd, a wcześniej wysyłałem je tak jak firefox wysyłał, czyli Cookie: nazwa1=blabla; nazwa2=blabla; nazwa3=blabla
A teraz widzę, że w twoim sposobie cookies można słać w stylu
Cookie: nazwa1=blabla; expires=Sun, 12-Aug-2012 17:56:46 GMT; path=/
Cookie: nazwa2=blabla; expires=Sun, 12-Aug-2012 17:56:46 GMT; path=/
itd

Bardzo mnie uszczęśliwiłeś :). Dziękuję

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)