使用PHP和CURL登录网站

使用PHP和CURL登录网站,php,curl,Php,Curl,我正在尝试获取一个页面https://example.com/my-receipts登录到https://example.com/sessions。我正在正确登录,但我没有被带到/my receipts页面(我可以看到我是从结果页面登录的,但它捕获了一些异常并将我重定向到帮助页面) 这是我正在使用的代码: //initial request with login data $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://exa

我正在尝试获取一个页面
https://example.com/my-receipts
登录到
https://example.com/sessions
。我正在正确登录,但我没有被带到
/my receipts
页面(我可以看到我是从结果页面登录的,但它捕获了一些异常并将我重定向到帮助页面)

这是我正在使用的代码:

//initial request with login data

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/sessions');
curl_setopt($ch, CURLOPT_REFERER, "https://example.com/dashboard");
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email='.urlencode($email).'&password='.urlencode($password).'&_token=');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, '4.cookie');
curl_setopt($ch, CURLOPT_COOKIEFILE, '4.cookie');
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo "[E1] ".curl_error($ch);
}

//another request preserving the session

curl_setopt($ch, CURLOPT_URL, 'https://example.com/my-receipts');
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo "[E2] ".curl_error($ch);
}

echo $answer;

我试图获取页面的网站正在nginx上运行Laravel和Angular JS。使用此代码登录后,我已经能够获取其他页面。是否可能有特定于框架的东西阻止了我?

我建议正常使用该站点,并在正常加载
/my receipts
期间查看浏览器控制台。寻找其他张贴回来的字段,例如CSRF令牌。如果您可以向我们展示真实的网站,并给我们提供一个测试帐户,我们可能会提供更多帮助。但是,是的,按照@MichaelBerkowski的建议去做,用浏览器登录,用开发者工具记录登录过程,然后用curl复制,这就是我一直在做的,chrome的开发者工具“网络标签”对此非常有价值