Мучаюсь с cURL нужно пройти авторизацию на сайте https://login.mos.ru/eaidit/eaiditweb/openouterlogin.do
Что у меня имеется из набросков.
$url = 'https://login.mos.ru/eaidit/eaiditweb/outerlogin.do';
$header = array();
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$header[] = 'Accept-Charset: utf-8,utf-8;q=0.7,*;q=0.7';
$header[] = 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
$header[] = 'Cache-Control: no-store, no-cache, must-revalidate, max-age=0';
$post = array();
$post['username'] = 'user';
$post['password'] = '123456789';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:36.0) Gecko/20100101 Firefox/36.0");
if(strtolower((substr($url, 0, 5)) == 'https')) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_VERBOSE,1);
$page = curl_exec($ch);
$info = curl_getinfo($ch);
//curl_close($ch);
file_put_contents('data.txt', $page ."\n", FILE_APPEND | LOCK_EX);
echo '<pre>';
print_r($info);
echo '<pre>';
Так вот при выполнении скрипта авторизация проходит успешно
HTTP/1.1 302 Found
content-length: 0
date: Wed, 15 Apr 2015 08:23:28 GMT
location: https://login.mos.ru/eaidit/eaiditweb/loginok.do
p3p: CP="NON CUR OTPi OUR NOR UNI"
server: Apache-Coyote/1.1
cache-control: no-cache, no-store, must-revalidate, max-age=0
pragma: no-cache, no-store
expires: 0
Set-Cookie: JSESSIONID=7C9B81E84C829176D65972EA3C32B0A0; Path=/eaidit/eaiditweb/
Set-Cookie: PD_STATEFUL_1fc209b8-8d71-11e3-bc1d-005056803fa1=%2Feaidit; Path=/
HTTP/1.1 200 OK
content-length: 796
content-type: text/html
date: Wed, 15 Apr 2015 08:23:29 GMT
p3p: CP="NON CUR OTPi OUR NOR UNI"
server: WebSEAL/6.1.1.5 (Build 120405)
pragma: no-cache
cache-control: no-cache
Set-Cookie: PD-H-SESSION-ID=4_1_xlVuv1kunFmXtTD0kUK0nb4zd+7zXBZlknu6dhwCxijOlNEs; Domain=.mos.ru; Path=/
Set-Cookie: PD-ID=mV0MwkDNCrR4Wz4RBwhRnP2rbYKdWPcfRuMJUCz6M71IIdAQdvxK0SONsWz8jUhJmtM4Z1mxv1uZBRW7SmdyeKsbx54obHvYkRb4uOsjnPjB7EjLbYEeqlWoGTLbT6BHMNtWXse8z0vUs1u67qojd01gzfgQIl4SMsUdF/DJ2cdBJik8W82IxMviFYcoNikWkcAD+9odbEzy43zWxDW642/4QGP3SWwkQTuV42YONhrxR/OTOUjgrkk7X51 opK8Su2K6M45+nAxQrOh59ccgQMdQsNlJeTJcDIy+iv53CGPCHlpT4Zrm2drdccGcNe9r9ONvnykFWeMQRM0QuVTOSVRregWYIA/oWqLE4PaqSkNWiuEyJ1SRDuszJJl3KHjI5Jl5W3wnjJJ4l8ezO6fkizgKZTzraW6nAm9LMm+hciWP2zMc1nLY qX7DMe+X/X4YiAkZkyvu6QA=; Domain=.mos.ru; Path=/; Secure
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<!-- Copyright © 2000 Tivoli Systems, Inc. -->
<!-- Copyright © 1999 IBM Corporation -->
<!-- Copyright © 1998 Dascom, Inc. -->
<!-- All Rights Reserved. -->
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Success</TITLE>
<script language="JavaScript" type="text/javascript">
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
var href = get_cookie ("login_href");
if(href != null && href.length > 0) window.location=href;
else window.location="https://pgu.mos.ru/";
</script>
</HEAD>
<BODY>
<P>Your login was successful.
</BODY>
</HTML>
После это идет РЕДИРЕКТ на главную страницу где должно быть видно что я залогинелся. Но этого не происходит.
У меня есть предположение (скорее утверждение), что дело в КУКАх! Как будто кука не сохранилась после редиректа со страницы авторизации. Хотя сами записи в cookie.txt есть!
Вот что в cookie.txt
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
login.mos.ru FALSE /eaidit/eaiditweb/ FALSE 0 JSESSIONID 79F9CF69D2D07EE8E83C14137E1B457F
login.mos.ru FALSE / FALSE 0 PD_STATEFUL_1fc209b8-8d71-11e3-bc1d-005056803fa1 %2Feaidit
.mos.ru TRUE / FALSE 0 PD-H-SESSION-ID 4_1_KUbl9n5Y5Cbk9XsfqWRvC88OyNwGQwRBaqBR6IiiZT17gj3i
.mos.ru TRUE / TRUE 0 PD-ID s08oSBtE3c+b3wZDx0ioZWa+wp2YnmvlWBl1mEykW3Q2ax7mw4De15oKHlZOrff9wLbwaOkiMzwSCR9DlrMlAax3f8OCL4td7IqgSskcfmXQlW8r3NUz9WG YGTMXJyObGHCdsTXusa6M6u6VHVFoG8T5kIVS11tH6/JDdOgHAeo/KGfa7Psc5w7PpVcsO+jtJ+KtLdiytUzo3flVYpaLjaBFDDHm xtNq0avELMhEmXq7bDWYw0aEscHGuqXdt6P82SN7T9mxFSKMI0TLyGL5RP7Gz6vZU3jw3MC/ICmkwYsfL+5DXy3fDXub22GbzhtmRKsjQD33G4odXn+TA/HwplCDuUal6IrpwO8GfFrKuy5TWWEPM15 ptQdDCjPo5vH+bR9/GNpxCtNA8vrxgN7HxVLD8udbbA/MBI86J6klXd6K2cyq5fb113EAbm2R/zJHCRhTauh63Ew=