Я пытаюсь войти в этот URL:
http://www.kalahari.com/marketplace/default.aspx
Два поля, которые отправляются, помечены следующим образом:
ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal
Код, который я пытался использовать до сих пор:
$username = 'XXXXXXX'; $password = 'XXXXXXX'; $loginUrl = 'http://www.kalahari.com/marketplace/default.aspx'; $cookie = 'cookies.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $loginUrl ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt($ch, CURLOPT_COOKIEJAR , $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_HEADER, FALSE ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $ret = curl_exec($ch); //access login page // Collecting all POST fields $postfields = array(); $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail'] = $username; $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal'] = $password; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); $ret = curl_exec($ch);//Get result after login page. print $ret;
Однако это возвращает меня только к исходной странице входа … даже с сообщением об ошибке.
Затем я посмотрел, что происходит, и я увидел:
Request URL:http://www.kalahari.com/marketplace/default.aspx Request Method:POST Status Code:302 Found Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:2596 Content-Type:application/x-www-form-urlencoded Cookie:VISITORID=9840A7E31683480CB19A66FB8AA73BFC; ASP.NET_SessionId=foous3ftij3os2vvr1wbm3mm; __utma=160092839.590473234.1362995010.1362995010.1362995010.1; __utmc=160092839; __utmz=160092839.1362995010.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _SUPERFLY_nosample=1; shopperName=; signin=0; kalahariShopperId=922859656760417F99E83D5B1427115F; surfLang=ENG; prefLanguage=en-ZA; _chartbeat2=1yx62ww1m7xz1o84.1360134968807.1363000295875.00000000000001 Host:www.kalahari.com Origin:http://www.kalahari.com Referer:http://www.kalahari.com/marketplace/default.aspx User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 Form Dataview sourceview URL encoded __EVENTTARGET: __EVENTARGUMENT: __VIEWSTATE:/wEPDwULLTEzODYxODcwMTMPZBYCZg9kFgJmD2QWAgIBD2QWCAICD2QWBAIDDw8WAh4LTmF2aWdhdGVVcmwFNH4vcGlwZWxpbmUvc2lnbmluLmFzcHg/UmV/wuPOuNOonYg5XWvf3RGR1YVkw== __EVENTVALIDATION:/wEWDQLsuI7QDgKnpLoxApD7nfEPAvLAqqUGAp35/akJAqGiqqYPAsXC5NUHAsHJ5OMCAovxoc8LArq0mqAKApm+rVoC9dLe0Q8C5IvEsAlYqPIdcrZvBZcvYav7ATMf4Nhbfg== ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail:XXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal:Password ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPassword:XXXXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$btnSigninTop:Sign in ctl00$ctl00$cplhMain$cplhContent$txtEmail:Email address ctl00$ctl00$cplhMain$cplhContent$rdlPasswordYes:rdlPasswordYes ctl00$ctl00$cplhMain$cplhContent$txtPasswordTextNormal:Password ctl00$ctl00$cplhMain$cplhContent$txtPassword: ctl00$ctl00$cplhMain$cplhContent$hdnEmailDefault:Email address ctl00$ctl00$cplhMain$cplhContent$hdnPasswordDefault:Password Response Headersview source Cache-Control:private, no-cache="Set-Cookie" Content-Length:146 Content-Type:text/html; charset=utf-8 Date:Mon, 11 Mar 2013 11:11:57 GMT Etag: Location:/marketplace/default.aspx Server:Microsoft-IIS/6.0 Set-Cookie:.KALAHARINETAUTH=782A6F442823F8148FB113BA0BAF3A9A8DE253762A4ACFAA5E911E4721166F0EEC6A1891755133AADD28654CF0DAE3880CC2B84260F0B915C07897909CFB071495AF8EF05D1BD678DEE1933FCB08E5ECB1CF76462900681C7D4AE963C151E3079D95FBAD6466F0528787455A951D5EC0DA26F0E6CAA341E4C717D7F3BC01D182F488F47F; domain=.kalahari.com; path=/; HttpOnly Set-Cookie:surfLang=ENG; domain=.kalahari.com; expires=Sat, 11-Mar-2023 11:11:57 GMT; path=/ Set-Cookie:prefLanguage=en-ZA; domain=www.kalahari.com; path=/ Set-Cookie:signin=1; domain=kalahari.com; path=/ Set-Cookie:tempshopperid=922859656760417F99E83D5B1427115F; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperId=54B14971F72D426BA02DEF3A3D99DC93; domain=kalahari.com; expires=Sun, 17-Jan-2038 22:00:00 GMT; path=/ Set-Cookie:shopperName=XXXX; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperEmail=XXX@XXXX.XXX; domain=kalahari.com; path=/ X-AspNet-Version:2.0.50727 X-Powered-By:ASP.NET
дляRequest URL:http://www.kalahari.com/marketplace/default.aspx Request Method:POST Status Code:302 Found Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:2596 Content-Type:application/x-www-form-urlencoded Cookie:VISITORID=9840A7E31683480CB19A66FB8AA73BFC; ASP.NET_SessionId=foous3ftij3os2vvr1wbm3mm; __utma=160092839.590473234.1362995010.1362995010.1362995010.1; __utmc=160092839; __utmz=160092839.1362995010.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _SUPERFLY_nosample=1; shopperName=; signin=0; kalahariShopperId=922859656760417F99E83D5B1427115F; surfLang=ENG; prefLanguage=en-ZA; _chartbeat2=1yx62ww1m7xz1o84.1360134968807.1363000295875.00000000000001 Host:www.kalahari.com Origin:http://www.kalahari.com Referer:http://www.kalahari.com/marketplace/default.aspx User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 Form Dataview sourceview URL encoded __EVENTTARGET: __EVENTARGUMENT: __VIEWSTATE:/wEPDwULLTEzODYxODcwMTMPZBYCZg9kFgJmD2QWAgIBD2QWCAICD2QWBAIDDw8WAh4LTmF2aWdhdGVVcmwFNH4vcGlwZWxpbmUvc2lnbmluLmFzcHg/UmV/wuPOuNOonYg5XWvf3RGR1YVkw== __EVENTVALIDATION:/wEWDQLsuI7QDgKnpLoxApD7nfEPAvLAqqUGAp35/akJAqGiqqYPAsXC5NUHAsHJ5OMCAovxoc8LArq0mqAKApm+rVoC9dLe0Q8C5IvEsAlYqPIdcrZvBZcvYav7ATMf4Nhbfg== ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail:XXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal:Password ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPassword:XXXXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$btnSigninTop:Sign in ctl00$ctl00$cplhMain$cplhContent$txtEmail:Email address ctl00$ctl00$cplhMain$cplhContent$rdlPasswordYes:rdlPasswordYes ctl00$ctl00$cplhMain$cplhContent$txtPasswordTextNormal:Password ctl00$ctl00$cplhMain$cplhContent$txtPassword: ctl00$ctl00$cplhMain$cplhContent$hdnEmailDefault:Email address ctl00$ctl00$cplhMain$cplhContent$hdnPasswordDefault:Password Response Headersview source Cache-Control:private, no-cache="Set-Cookie" Content-Length:146 Content-Type:text/html; charset=utf-8 Date:Mon, 11 Mar 2013 11:11:57 GMT Etag: Location:/marketplace/default.aspx Server:Microsoft-IIS/6.0 Set-Cookie:.KALAHARINETAUTH=782A6F442823F8148FB113BA0BAF3A9A8DE253762A4ACFAA5E911E4721166F0EEC6A1891755133AADD28654CF0DAE3880CC2B84260F0B915C07897909CFB071495AF8EF05D1BD678DEE1933FCB08E5ECB1CF76462900681C7D4AE963C151E3079D95FBAD6466F0528787455A951D5EC0DA26F0E6CAA341E4C717D7F3BC01D182F488F47F; domain=.kalahari.com; path=/; HttpOnly Set-Cookie:surfLang=ENG; domain=.kalahari.com; expires=Sat, 11-Mar-2023 11:11:57 GMT; path=/ Set-Cookie:prefLanguage=en-ZA; domain=www.kalahari.com; path=/ Set-Cookie:signin=1; domain=kalahari.com; path=/ Set-Cookie:tempshopperid=922859656760417F99E83D5B1427115F; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperId=54B14971F72D426BA02DEF3A3D99DC93; domain=kalahari.com; expires=Sun, 17-Jan-2038 22:00:00 GMT; path=/ Set-Cookie:shopperName=XXXX; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperEmail=XXX@XXXX.XXX; domain=kalahari.com; path=/ X-AspNet-Version:2.0.50727 X-Powered-By:ASP.NET
вRequest URL:http://www.kalahari.com/marketplace/default.aspx Request Method:POST Status Code:302 Found Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:2596 Content-Type:application/x-www-form-urlencoded Cookie:VISITORID=9840A7E31683480CB19A66FB8AA73BFC; ASP.NET_SessionId=foous3ftij3os2vvr1wbm3mm; __utma=160092839.590473234.1362995010.1362995010.1362995010.1; __utmc=160092839; __utmz=160092839.1362995010.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _SUPERFLY_nosample=1; shopperName=; signin=0; kalahariShopperId=922859656760417F99E83D5B1427115F; surfLang=ENG; prefLanguage=en-ZA; _chartbeat2=1yx62ww1m7xz1o84.1360134968807.1363000295875.00000000000001 Host:www.kalahari.com Origin:http://www.kalahari.com Referer:http://www.kalahari.com/marketplace/default.aspx User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 Form Dataview sourceview URL encoded __EVENTTARGET: __EVENTARGUMENT: __VIEWSTATE:/wEPDwULLTEzODYxODcwMTMPZBYCZg9kFgJmD2QWAgIBD2QWCAICD2QWBAIDDw8WAh4LTmF2aWdhdGVVcmwFNH4vcGlwZWxpbmUvc2lnbmluLmFzcHg/UmV/wuPOuNOonYg5XWvf3RGR1YVkw== __EVENTVALIDATION:/wEWDQLsuI7QDgKnpLoxApD7nfEPAvLAqqUGAp35/akJAqGiqqYPAsXC5NUHAsHJ5OMCAovxoc8LArq0mqAKApm+rVoC9dLe0Q8C5IvEsAlYqPIdcrZvBZcvYav7ATMf4Nhbfg== ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail:XXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal:Password ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPassword:XXXXXXXXXXX ctl00$ctl00$ucMarketPlaceSupportNavigation$btnSigninTop:Sign in ctl00$ctl00$cplhMain$cplhContent$txtEmail:Email address ctl00$ctl00$cplhMain$cplhContent$rdlPasswordYes:rdlPasswordYes ctl00$ctl00$cplhMain$cplhContent$txtPasswordTextNormal:Password ctl00$ctl00$cplhMain$cplhContent$txtPassword: ctl00$ctl00$cplhMain$cplhContent$hdnEmailDefault:Email address ctl00$ctl00$cplhMain$cplhContent$hdnPasswordDefault:Password Response Headersview source Cache-Control:private, no-cache="Set-Cookie" Content-Length:146 Content-Type:text/html; charset=utf-8 Date:Mon, 11 Mar 2013 11:11:57 GMT Etag: Location:/marketplace/default.aspx Server:Microsoft-IIS/6.0 Set-Cookie:.KALAHARINETAUTH=782A6F442823F8148FB113BA0BAF3A9A8DE253762A4ACFAA5E911E4721166F0EEC6A1891755133AADD28654CF0DAE3880CC2B84260F0B915C07897909CFB071495AF8EF05D1BD678DEE1933FCB08E5ECB1CF76462900681C7D4AE963C151E3079D95FBAD6466F0528787455A951D5EC0DA26F0E6CAA341E4C717D7F3BC01D182F488F47F; domain=.kalahari.com; path=/; HttpOnly Set-Cookie:surfLang=ENG; domain=.kalahari.com; expires=Sat, 11-Mar-2023 11:11:57 GMT; path=/ Set-Cookie:prefLanguage=en-ZA; domain=www.kalahari.com; path=/ Set-Cookie:signin=1; domain=kalahari.com; path=/ Set-Cookie:tempshopperid=922859656760417F99E83D5B1427115F; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperId=54B14971F72D426BA02DEF3A3D99DC93; domain=kalahari.com; expires=Sun, 17-Jan-2038 22:00:00 GMT; path=/ Set-Cookie:shopperName=XXXX; domain=kalahari.com; path=/ Set-Cookie:kalahariShopperEmail=XXX@XXXX.XXX; domain=kalahari.com; path=/ X-AspNet-Version:2.0.50727 X-Powered-By:ASP.NET
Похоже, я должен представлять гораздо больше, чем просто имя пользователя и пароль. Что именно я должен публиковать и как мне размещать что-то вроде «viewstate», которое не является фиксированным значением?
Введение
Возможная причина, по которой ваш скрипт не работает, выглядит следующим образом
__VIEWSTATE
__EVENTVALIDATION
ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal
для пароля вместо ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPassword
Типичный запрос сервера
Полный длинный запрос выглядит так
POST http://www.kalahari.com/marketplace/default.aspx HTTP/1.1 Host: www.kalahari.com Connection: keep-alive Content-Length: 2584 Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Origin: http://www.kalahari.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22 Content-Type: application/x-www-form-urlencoded Referer: http://www.kalahari.com/marketplace/default.aspx Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: ASP.NET_SessionId=t2dopenbp5zdfojmg1sd4m55; VISITORID=ECE2335BD47344E29A3D24E04FA31777; mpshopperid=A2E19BEB4D77484A89B9CD64BBB9C294; sign_up_track=sign_up; shopperName=; signin=0; kalahariShopperId=9D0B941AADCC48CA8ACB071C840A9CEB; __utma=46148088.1484253925.1363278451.1363278451.1363278451.1; __utmb=46148088.8.10.1363278451; __utmc=46148088; __utmz=46148088.1363278451.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); surfLang=ENG; prefLanguage=en-ZA; _chartbeat2=fn9a2z0breekvh98.1363278407516.1363278713879.00000000000001 __EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTEzODYxODcwMTMPZBYCZg9kFgJmD2QWAgIBD2QWCAICD2QWBAIDDw8WAh4LTmF2aWdhdGVVcmwFNH4vcGlwZWxpbmUvc2lnbmluLmFzcHg%%2FwuPOuNOonYg5XWvf3RGR1YVkw%3D%3D&__EVENTVALIDATION=%2FwEWDQLsuI7QDgKnpLoxApD7nfEPAvLAqqUGAp35%2FakJAqGiqqYPAsXC5NUHAsHJ5OMCAovxoc8LArq0mqAKApm%2BrVoC9dLe0Q8C5IvEsAlYqPIdcrZvBZcvYav7ATMf4Nhbfg%3D%3D&ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInEmail=XXXXXXXXXX%40rmqkr.net&ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInPasswordTextNormal=Password&ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInPassword=XXXXXXXXXX&ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24btnSigninTop=Sign+in&ctl00%24ctl00%24cplhMain%24cplhContent%24txtEmail=Email+address&ctl00%24ctl00%24cplhMain%24cplhContent%24rdlPasswordYes=rdlPasswordYes&ctl00%24ctl00%24cplhMain%24cplhContent%24txtPasswordTextNormal=Password&ctl00%24ctl00%24cplhMain%24cplhContent%24txtPassword=&ctl00%24ctl00%24cplhMain%24cplhContent%24hdnEmailDefault=Email+address&ctl00%24ctl00%24cplhMain%24cplhContent%24hdnPasswordDefault=Password
Использовать завиток
$url = "http://www.kalahari.com/marketplace/default.aspx"; $ckfile = tempnam("/tmp", "CURLCOOKIE"); $useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2'; $username = "XXXXXXXXXX"; $password = "XXXXXXXXXX"; $f = fopen('log.txt', 'w'); // file to write request header for debug purpose /** Get __VIEWSTATE & __EVENTVALIDATION */ $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); $html = curl_exec($ch); curl_close($ch); preg_match('~<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(.*?)" />~', $html, $viewstate); preg_match('~<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.*?)" />~', $html, $eventValidation); $viewstate = $viewstate[1]; $eventValidation = $eventValidation[1]; /** Start Login process */ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_STDERR, $f); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); // Collecting all POST fields $postfields = array(); $postfields['__EVENTTARGET'] = ""; $postfields['__EVENTARGUMENT'] = ""; $postfields['__VIEWSTATE'] = $viewstate; $postfields['__EVENTVALIDATION'] = $eventValidation; $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail'] = $username; $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal'] = "Password"; $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPassword'] = $password; $postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$btnSigninTop'] = 'Sign in'; $postfields['ctl00$ctl00$cplhMain$cplhContent$txtEmail'] = 'Email address'; $postfields['ctl00$ctl00$cplhMain$cplhContent$rdlPasswordYes'] = 'Password'; $postfields['ctl00$ctl00$cplhMain$cplhContent$txtPassword'] = ''; $postfields['ctl00$ctl00$cplhMain$cplhContent$hdnEmailDefault'] = 'Email address'; $postfields['ctl00$ctl00$cplhMain$cplhContent$hdnPasswordDefault'] = 'Password'; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); $ret = curl_exec($ch); // Get result after login page. print $ret;
Протестировано и прекрасно работает …
Я хотел дать ему попробовать и заставить ваш код работать, см. Ниже. У меня есть код var_dump и комментарии в коде, что я делаю.
<?php $username = 'test@example.com'; $password = 'example'; $loginUrl = 'http://www.kalahari.com/marketplace/default.aspx'; //on windows server you need full path or its not even used. $cookie = dirname(__FILE__) . '\cookies1.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $loginUrl ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt($ch, CURLOPT_COOKIEJAR , $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_HEADER, FALSE ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $ret = curl_exec($ch); //access login page //check the contents of the cookie file. the sessionID, visitorID and kalaharishooperID should be the same with each refresh. var_dump(implode('', file($cookie))); //now get the viewstate from the value //could be better with regex or anything, but this works. $content = explode('value="', stristr($ret, 'id="__VIEWSTATE"')); $viewstate = substr($content[1], 0, strpos($content[1], '"')); var_dump($viewstate); //now get the EVENTVALIDATION from the value //could be better with regex or anything, but this works. $content = explode('value="', stristr($ret, 'id="__EVENTVALIDATION"')); $validation = substr($content[1], 0, strpos($content[1], '"')); var_dump($validation); //define post fields //i removed all fields that are not required for the post $postfields = array( "__VIEWSTATE" => rawurlencode($viewstate), "__EVENTVALIDATION" => rawurlencode($validation), "ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInEmail" => rawurlencode($username), "ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInPasswordTextNormal" => "Password", "ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24txtMPTopSignInPassword" => rawurlencode($password), "ctl00%24ctl00%24ucMarketPlaceSupportNavigation%24btnSigninTop" => "Sign+in", ); var_dump($postfields); //I created the string myself for the post, else I got an error because we already encoded the variable names. $p = ""; foreach($postfields as $k=>$v) { $p .= $k.'='.$v.'&'; } //do the new post curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $p); $ret = curl_exec($ch);//Get result after login page. //this contains 'You have entered an invalid password' so it works as expected. var_dump($ret); ?>
Это, скорее всего, токен CRSF. У вас будет вызов страницы, затем используйте значение, возвращаемое в вашем запросе на вход в систему. DropBox использует аналогичный процесс. Если вы возьмете скрипт загрузчика dropbox с https://github.com/jakajancar/DropboxUploader/, вы увидите, как он это делает.