Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Logowanie WinHTTP


Rekomendowane odpowiedzi

Opublikowano

Mam problem z zalogowaniem się do gry tiwar.pl. Wyskakuje mi cały czas błąd autoryzacji, pomimo tego, że passy są dobre.

 

#include "WinHTTP.au3"


$handlewinhttp =_WinHttpOpen ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0")
$connect = _WinHttpConnect($handlewinhttp, "tiwar.pl")
$zapytanie= _WinHttpOpenRequest($connect, "GET", "/?sign_in=1");otwieramy zapytanie
_WinHttpAddRequestHeaders($zapytanie, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($zapytanie, "Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($zapytanie, "Referer: http://tiwar.pl/?exit")
_WinHttpAddRequestHeaders($zapytanie, "Connection: keep-alive")
_WinHttpSendRequest($zapytanie)
_WinHttpReceiveResponse($zapytanie)




$handlewinhttp =_WinHttpOpen ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0")
$connect = _WinHttpConnect($handlewinhttp, "http://tiwar.pl")
$zapytanie1 = _WinHttpOpenRequest($connect, "POST", "/?sign_in=1")
_WinHttpAddRequestHeaders($zapytanie1, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($zapytanie1, "Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($zapytanie1, "DNT:1")
_WinHttpAddRequestHeaders($zapytanie1, "Referer: http://tiwar.pl/?sign_in=1")
_WinHttpAddRequestHeaders($zapytanie1, "Connection: keep-alive")
_WinHttpAddRequestHeaders($zapytanie1, "Content-Type: application/x-www-form-urlencoded")
_WinHttpSendRequest($zapytanie1, Default, "login=zelmerek&pass=zelmerek")
_WinHttpReceiveResponse($zapytanie1)

$data = ""
Do
$data &= _WinHttpReadData($zapytanie1, 0)
Until @
FileDelete(@ScriptDir & '/login.html')
FileWrite(@ScriptDir & '/login.html', $data)

Jakieś pomysły dlaczego nie mogę się zalogować ?

Opublikowano
#include "WinHTTP.au3"


$handlewinhttp =_WinHttpOpen ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0")
$connect = _WinHttpConnect($handlewinhttp, "www.tiwar.pl")
$zapytanie= _WinHttpOpenRequest($connect, "GET", "/?sign_in=1");otwieramy zapytanie
_WinHttpAddRequestHeaders($zapytanie, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($zapytanie, "Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($zapytanie, "Referer: http://tiwar.pl/?exit")
_WinHttpAddRequestHeaders($zapytanie, "Connection: keep-alive")
_WinHttpSendRequest($zapytanie)
_WinHttpReceiveResponse($zapytanie)



$zapytanie1 = _WinHttpOpenRequest($connect, "POST", "/?sign_in=1")
_WinHttpAddRequestHeaders($zapytanie1, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($zapytanie1, "Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($zapytanie1, "DNT:1")
_WinHttpAddRequestHeaders($zapytanie1, "Referer: http://tiwar.pl/?sign_in=1")
_WinHttpAddRequestHeaders($zapytanie1, "Connection: keep-alive")
_WinHttpAddRequestHeaders($zapytanie1, "Content-Type: application/x-www-form-urlencoded")
_WinHttpSendRequest($zapytanie1, Default, "login=zelmerek&pass=zelmerek")
_WinHttpReceiveResponse($zapytanie1)

$data = ""
Do
$data &= _WinHttpReadData($zapytanie1, 0)
Until @
FileDelete(@ScriptDir & '/login.html')
FileWrite(@ScriptDir & '/login.html', $data)

Tak na szybko poprawilem bledy ktore zrobiles, jezeli to nie zadziala to wina jest gdzies w headers.

Opublikowano
 

Dzięki za pomoc - działa

 

Mi nie.  :huh:

 

Ale mój kod tak. Zapomniałeś dodać ciasteczka z PHPSESSID. Kod napisałem od nowa z użyciem obiektu WinHttp(Requst);

Global $httpResponse
Global Const $USER_AGENT = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"
Global $oHttp = ObjCreate("winhttp.winhttprequest.5.1")
If @ Then MsgBox(16, "", "Nie znaleziono obiektu winhttp.winhttprequest.5.1")


$oHttp.open("GET", "http://tiwar.pl/")
$oHttp.setRequestHeader("Connection", "keep-alive")
$oHttp.setRequestHeader("Cache-Control", "max-age=0")
$oHttp.setRequestHeader("User-Agent", $USER_AGENT)
$oHttp.send()

$sSetCookie = $oHttp.getResponseHeader("Set-Cookie")
$PHPSESSID = StringRegExp($sSetCookie, "PHPSESSID=(.*?);", 1)
If IsArray($PHPSESSID) Then $PHPSESSID = $PHPSESSID[0]


$oHttp.open("GET", "http://tiwar.pl/?sign_in=1&PHPSESSID=" & $PHPSESSID)
$oHttp.setRequestHeader("User-Agent", $USER_AGENT)
$oHttp.setRequestHeader("Referer", "http://tiwar.pl/")
$oHttp.setRequestHeader("Cookie", "PHPSESSID=" & $PHPSESSID)
$oHttp.send()


Local $httpData = "login=mpcforumsukwo&pass=haslosukwo"
$oHttp.open("POST", "http://tiwar.pl/")
$oHttp.setRequestHeader("Cache-Control", "max-age=0")
$oHttp.setRequestHeader("Connection", "keep-alive")
$oHttp.setRequestHeader("Content-Length", StringLen($httpData))
$oHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHttp.setRequestHeader("Cookie", "PHPSESSID=" & $PHPSESSID)
$oHttp.setRequestHeader("Referer", "http://tiwar.pl/?sign_in=1&PHPSESSID=" & $PHPSESSID)
$oHttp.setRequestHeader("User-Agent", $USER_AGENT)
$oHttp.send($httpData)

$httpResponse = $oHttp.responseText

ResponseViewer($httpResponse) ;mozesz to usunac 


Func ResponseViewer(ByRef $htmlSource)
	Local $oBrowser = ObjCreate("Shell.Explorer.2")
	If @ Then Return
	Local $formBrowser = GUICreate("Podgląd HTML", @DesktopWidth - 200, @DesktopHeight - 200)
	Local $objBrowser = GUICtrlCreateObj($oBrowser, 0, 0, @DesktopWidth - 200, @DesktopHeight - 200)
	$oBrowser.navigate("about:blank")
	Do
		Sleep(10)
	Until ($oBrowser.document.readyState = 4 Or $oBrowser.document.readyState = "complete")
	$oBrowser.document.body.innerHTML = $htmlSource
	GUISetState(@SW_SHOW, $formBrowser)
	While (GUIGetMsg() <> -3)
		Sleep(10)
	WEnd
EndFunc   ;==>ResponseViewer

( ͡° ͜ʖ ͡°)

Opublikowano

kolo12311- zmieniłem host na tiwar.pl oraz usunąłem zapytanie po POST/GET na "/"

Pełen podziw za logowanie z ciasteczkami (mnie to zadanie przerosło). Twój kod na pewno się przyda, bo nigdzie nie znalazłem takiego :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...