我有一些任务。 我需要通过curl在网站上授权 但我所用的都是 - 错了。
请告诉我它是如何解决的。 因为我需要使用这个网站。 谢谢!
答案 0 :(得分:0)
您需要首先获取页面以获取一些cookie信息然后登录。我已经使用了您的凭据并测试了下面的代码,我登录了确定。希望你能够理解我所做的一切。
如果没有对“http://www.kinguin.net/customer/account/login”的初始卷曲请求,我需要获取Cookie才能登陆页面。一旦我卷曲了这个页面,我就可以登录了。
此外,我使用的登录页面是实际登录表单发布到的页面(“http://www.kinguin.net/customer/account/loginPost/”),而不是您问题中的登录页面。
$firsturl = 'http://www.kinguin.net/customer/account/login';
$ch = curl_init();
$useragent="Fake Mozilla 5.0 ";
$cookie_jar = tempnam ("/tmp", "kinguin");
curl_setopt($ch, CURLOPT_URL, $firsturl);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
$redir = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
$loginurl = 'http://www.kinguin.net/customer/account/loginPost/';
$fields = array('login[username]' => urlencode('dan-ver@ukr.net'),'login[password]' => urlencode ('78955123'));
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginurl);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
$redir = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
echo $result;