Код: Выделить всё
function login($url, $login, $pass){
$cookie = dirname(__DIR__).'\grab\cookie.txt';
$ch = curl_init();
if(strtolower((substr($url,0,5))=='https')) { // если соединяемся с https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
curl_setopt($ch, CURLOPT_URL, $url);
// откуда пришли на эту страницу
curl_setopt($ch, CURLOPT_REFERER, $url);
// cURL будет выводить подробные сообщения о всех производимых действиях
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"LoginForm[username]=".$login."&LoginForm[password]=".$pass
."&LoginForm[rememberMe]=1&"
. Yii::$app->getRequest()->csrfParam . "=".Yii::$app->getRequest()->getCsrfToken(''));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2)
Gecko/20070306 Firefox/1.0.0.4");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//сохранять полученные COOKIE в файл
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
echo login('http://site.loc/manager/sign-in/login', 'manager', 'test');
ну и на страничке авторизации выдается сообщение:HTTP/1.1 400 Bad Request
Date: Mon, 18 Dec 2017 13:02:05 GMT
Server: Apache
Set-Cookie: PHPSESSID=kh6lpv8rv10sqqnb4rnik57k82; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: max-age=0, private, no-store, no-cache, must-revalidate, no-transform
Pragma: no-cache
X-Debug-Tag: 5a37bc4dc2897
X-Debug-Duration: 1,273
X-Debug-Link: /manager/debug/default/view?tag=5a37bc4dc2897
Set-Cookie: _csrf=5f3067fd49aca010e0dda5daa8cd331835a9639fb78c025b01c14bb08334f723a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%228joOMjiyDN5wG4yEwwe0b6TXBH7RKXz2%22%3B%7D; path=/; HttpOnly
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
Код: Выделить всё
Ошибка 400
Не удалось проверить переданные данные.
Почему авторизация не проходит?