Как войти с помощью Curl, SSL и куки
Я пытался зайти на мобильный сайт barnesandnoble.com с помощью curl и до сих пор не повезло. Я вернусь на страницу без ошибок и по умолчанию моя электронная почта снова вводится в поле формы ввода электронной почты на странице входа в систему (в форме, возвращенной из print $ result).
Тот же код на самом деле может позволить мне войти в Ebay правильно изменив LOGINURL, чтобы он указывал на вход в ebay
Единственная разница в том, что Barnesandnobles это https: // и Ebay логин был http: //
Кроме того, я считаю, что веб-сайт Barnes является asp / aspx, поэтому я не знаю как это будет обрабатывать куки и _state по-другому
Любая помощь будет оценена, поскольку я пытался отладить это для последние 16 часов
также мой cookie.txt доступен для записи и работает
<code><?php $cookie_file_path = "C:/test/cookie.txt"; $LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn"; $agent = "Nokia-Communicator-WWW-Browser/2.0 (Geos 3.0 Nokia-9000i)"; $ch = curl_init(); $headers[] = "Accept: */*"; $headers[] = "Connection: Keep-Alive"; $headers[] = "Content-type: application/x-www-form-urlencoded;charset=UTF-8"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $LOGINURL); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); $content = curl_exec($ch); curl_close($ch); unset($ch); // NAME="path_state" value="6657403"> if(stristr($content,"path_state")){ $array1 = explode('path_state" value="',$content); $content1 = $array1[1]; $array2 = explode('">',$content1); $content2 = $array2[0]; } $LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn"; $POSTFIELDS = "d_hidPageStamp=V_3_17&hidViewMode=opSignIn&stage=signIn&previousStage=mainStage&path_state=" . $content2 . "&[email protected]&acctPassword=YOURPASSWORD"; $reffer = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn"; $ch = curl_init(); $headers[] = "Accept: */*"; $headers[] = "Connection: Keep-Alive"; $headers[] = "Content-type: application/x-www-form-urlencoded;charset=UTF-8"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $LOGINURL); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_REFERER, $reffer); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); $result = curl_exec($ch); print $result; ?> </code>