「LaravelのHTTPクライアントでcookieを利用する」この記事の前に作成していた、curlでcookieを利用するコードを残したいと思います。
一時ファイルをcookie用のファイルとして扱います。
PHP
public function __invoke__()
{
$meta = stream_get_meta_data(tmpfile());
$cookiefile = $meta['uri'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.jp/wp-login.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'log' => 'user',
'pwd' => 'password',
]);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);
if (strpos($response, '入力内容を確認の上、もう一度送信してください。') !== FALSE) {
return 'ログインエラー';
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.jp/wp-admin/edit.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
}
[AD]