Я видел очень похожий вопрос несколько раз и пробовал их, но я не могу получить результат.
https://stackoverflow.com/questions/21369197/curl-login-vbulletin-cookie
Войти на сайт с curl в 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);
он возвращает страницу, которая не войдет в систему, хотя файл 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
Это может быть полезно для кого-то, у кого схожая проблема.