Php 使用CURL登录Ajax
我试图登录到一个网页,然后从一个只有登录成员才能看到的页面检索数据。我现在似乎能够使用CURL登录,但是我无法检索到我想要的页面Php 使用CURL登录Ajax,php,ajax,curl,Php,Ajax,Curl,我试图登录到一个网页,然后从一个只有登录成员才能看到的页面检索数据。我现在似乎能够使用CURL登录,但是我无法检索到我想要的页面 function login($url,$postData){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setop
function login($url,$postData){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, "http://domain.com/".$jobUrl."");
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$html=login('https://www.domain.com/users/ajaxonlogin.php',
'username=myemailaddress&passwd=mypassword');
echo $html;
我能得到以下回应:
{"status":"success","goto_url":"https:\/\/www.domain.com\/dashboard\/"}
我已尝试将以下内容添加到登录函数的底部:
$url = "http://www.domain.com/page-that-i-want-but-requires-log-in.php";
$results_page = curl($url);
echo $results_page;
但我只收到页面,好像我没有登录
有什么建议吗
谢谢
Bruce您可能需要处理cookie来存储会话id,这包括两件事-存储cookie的jar和在下一个请求时发送cookie。登录系统可能使用依赖于cookie的会话变量。您需要保存服务器发回的cookie,并将其包含在将来的调用中。查看
CURLOPT_-COOKIEFILE
和CURLOPT_-COOKIEJAR
选项。您可能是对的。。。但我也不知道从哪里开始?使用CURL是如何实现的?@Barmar您链接到的重复线程非常不同,不是吗?用户名和密码变量是通过URL传递的,而不是通过AJAX请求传递的。您只需要知道如何保存会话cookie。您可能需要处理cookie来存储会话id,这包括两件事-存储cookie的jar和在下一个请求时发送cookie。登录系统可能使用会话变量,这依赖于cookie。您需要保存服务器发回的cookie,并将其包含在将来的调用中。查看CURLOPT_-COOKIEFILE
和CURLOPT_-COOKIEJAR
选项。您可能是对的。。。但我也不知道从哪里开始?使用CURL是如何实现的?@Barmar您链接到的重复线程非常不同,不是吗?用户名和密码变量是通过URL传递的,而不是通过AJAX请求传递的。您只需要知道如何保存会话cookie。