vBulletin Curl 登录重定向不起作用
vBulletin Curl login redirect not working
我已经多次看到非常相似的问题并且已经尝试过但我无法得到结果。
Login to site with curl in vBulletin
.....
如果有人能帮助我登录论坛并查看各种帖子,我将不胜感激。
到目前为止,这就是我所做的
$username="username";
$password="password";
$url="www.example.com/login.php?do=login";
$cookie="cookie.txt";
$postdata = "".
'do=login'.
'&s='.
'&securitytoken=<security token here>'.
'&vb_login_md5password=<md5 password here>'.
'&vb_login_md5password_utf=<same as the one above>'.
'&vb_login_password='.
'&vb_login_password_hint=Password'.
'&vb_login_username=username';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);
如果我设置curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
它returns一个没有登录的页面,虽然cookie有登录信息。
好的,而不是使用 file_get_contents($user_url)
。我使用 php_curl
并最终获得了登录页面。
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $user_url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
$result = curl_exec ($ch);
curl_close($ch);
echo $result; // the logged in page
这可能对遇到类似问题的人有所帮助。
我已经多次看到非常相似的问题并且已经尝试过但我无法得到结果。
Login to site with curl in vBulletin
.....
如果有人能帮助我登录论坛并查看各种帖子,我将不胜感激。
到目前为止,这就是我所做的
$username="username";
$password="password";
$url="www.example.com/login.php?do=login";
$cookie="cookie.txt";
$postdata = "".
'do=login'.
'&s='.
'&securitytoken=<security token here>'.
'&vb_login_md5password=<md5 password here>'.
'&vb_login_md5password_utf=<same as the one above>'.
'&vb_login_password='.
'&vb_login_password_hint=Password'.
'&vb_login_username=username';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);
如果我设置curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
它returns一个没有登录的页面,虽然cookie有登录信息。
好的,而不是使用 file_get_contents($user_url)
。我使用 php_curl
并最终获得了登录页面。
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $user_url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
$result = curl_exec ($ch);
curl_close($ch);
echo $result; // the logged in page
这可能对遇到类似问题的人有所帮助。