글쎄, 일부 페이지에서 cURL을 사용하여 로그인하고 싶습니다. 브라우저의 해당 양식에 주소 표시 줄에이 데이터를 붙여 넣을 때 http://mywebpage.net/login.php?username=HERESMYUSERNAME&password=dded0102f44e7e0809520eb93055cb16 페이지로 이동하면 http://mywebpage.net/user.php 페이지로 이동합니다. 모든 것이 작동합니다. 이제 cURL을 사용하여 동일한 효과를 얻으려고하지만 무언가가 작동하지 않습니다.cURL이 작동하지 않습니다.
$url="http://mywebpage.net/login.php";
$cookie="cookie.txt";
$postdata = "username=cow&password=ass";
$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, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
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);
if (!$result) {
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch); // make sure we closeany current curl sessions
die($http_code.' Unable to connect to server. Please come back later.');
}
echo $result;
curl_close($ch);
것은 나에게 빈 입력의와 로그인 페이지를 보여주는 것 그리고 그것은 나를 로그인하고 올바른 주소로 이동하지 않습니다.
$url="http://mywebpage.net/login.php?username=user&password=ddad0102f44e7f0800354eb11155cb16";
$cookie="cookie.txt";
$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_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
if (!$result) {
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch); // make sure we closeany current curl sessions
die($http_code.' Unable to connect to server. Please come back later.');
}
echo $result;
curl_close($ch);
내가 지금 /all.php 자신을 리디렉션 할 수 있습니다 방법 : 나는 쇼를 www.mywebpage.net/user.php 입력 여기
작동 코드 "401 ERR"?
당신은 GET' 방법'로 데이터를 전송하고 그것을 작동합니다. 코드에서 시도해보십시오.'curl_setopt ($ ch, CURLOPT_POST, 0);로 변경하여 GET으로 전송하십시오. – safarov
'CURLOPT_FOLLOWLOCATION'을 0으로 설정하여 curl * not *에 올바른 주소로 이동하도록 명시 적으로 지시하십시오. 코드가 다른 곳에서 복사하여 붙여 넣은 것이라면, 한 줄씩 살펴보고 각 옵션의 의미를 문서에서 확인하십시오. – JJJ