在某些网站授权curl php

时间:2014-07-10 10:06:33

标签: php curl

我有一些任务。 我需要通过curl在网站上授权 但我所用的都是 - 错了。

请告诉我它是如何解决的。 因为我需要使用这个网站。 谢谢!

1 个答案:

答案 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;