php curl登录不起作用
嗨,我的卷发有问题。我看了一篇旧文章,但它不起作用。我听从了爸爸的建议,但代码输入了if语句。对不起,我的英语不好。有人能帮我吗 代码如下:php curl登录不起作用,php,curl,Php,Curl,嗨,我的卷发有问题。我看了一篇旧文章,但它不起作用。我听从了爸爸的建议,但代码输入了if语句。对不起,我的英语不好。有人能帮我吗 代码如下: $url="http://hipfile.com/"; $urllog="http://hipfile.com/login.html"; $postdata = "login=bnnoor&password=########&op=login"; $ch = curl_init(); curl_setopt ($ch, CURLOP
$url="http://hipfile.com/";
$urllog="http://hipfile.com/login.html";
$postdata = "login=bnnoor&password=########&op=login";
$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_REFERER, $urllog);
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);
你先吃饼干。当您登录时,站点可能需要它们。 下面的函数对我来说非常方便,verbose选项将显示详细的curl 错误和“post”选项可以设置为post字符串或值的关联数组 键是变量/字段名及其值。我也注意到你少了一些 将表单中的变量发布到hipfile上,这可能也是他们拒绝您的 登录 简单旋度函数:
function fetch( $url, $z=null ) {
$ch = curl_init();
$useragent = isset($z['useragent']) ? $z['useragent'] : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2';
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_POST, isset($z['post']) );
if( isset($z['post']) ) curl_setopt( $ch, CURLOPT_POSTFIELDS, $z['post'] );
if( isset($z['refer']) ) curl_setopt( $ch, CURLOPT_REFERER, $z['refer'] );
if( isset($z['ssl']) ) curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
if( isset($z['ssl']) ) curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
if( isset($z['verbose']) ) curl_setopt( $ch, CURLOPT_VERBOSE, true );
if( isset($z['get_header']) ) curl_setopt( $ch, CURLOPT_HEADER, true );
if( isset($z['header']) ) curl_setopt( $ch, CURLOPT_HTTPHEADER, $z['header'] );
curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );
curl_setopt( $ch, CURLOPT_COOKIEJAR, 'cookiejarfilepath' );
curl_setopt( $ch, CURLOPT_COOKIEFILE, 'cookiejarfilepath' );
$result = curl_exec( $ch );
curl_close( $ch );
return $result;
}
你到底犯了什么错误?什么不起作用?您是否收到错误:“无法连接到服务器。”。请稍后再来。“?如果我理解正确,您看到无法连接…,那么$http_代码是什么?你能给dumd$result;?http代码是302,我得到的错误是无法连接到服务器。请稍后再来var_dump$result的结果是什么?behzad n问题与您的不同与您的不同。。。由于设置了CURLOPT_FOLLOWLOCATION,因此无法获取HTTP 302。。你能把$result@Massimo zampieri转换成var_dump吗?我可以试试你的代码Adam,但它不起作用,也不能登录。我不明白问题出在哪里。Massimo,当我运行这个并回显$logged\u in\u page变量时,我得到了hipfile的首页,我假设这是因为登录字符串不包含真正的凭据。正如我前面提到的,您的登录字符串中还缺少一些post变量。Hipfile可能也在检查这些。如果您试图登录的服务很可能会阻止人们通过编码进入,那么您还需要匹配浏览器发送的所有标题。使用Firebug或Chrome开发者工具来精确匹配这些。我尝试在页面中使用echo$logged\u,但它没有显示首页。这是表格:用户名:密码:你能告诉我缺失的变量是什么吗?我也尝试过这种方式:$options['post']='login=bnnoor&password=&op=login&redirect=';但它仍然不起作用。你知道吗?
function fetch( $url, $z=null ) {
$ch = curl_init();
$useragent = isset($z['useragent']) ? $z['useragent'] : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2';
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_POST, isset($z['post']) );
if( isset($z['post']) ) curl_setopt( $ch, CURLOPT_POSTFIELDS, $z['post'] );
if( isset($z['refer']) ) curl_setopt( $ch, CURLOPT_REFERER, $z['refer'] );
if( isset($z['ssl']) ) curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
if( isset($z['ssl']) ) curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
if( isset($z['verbose']) ) curl_setopt( $ch, CURLOPT_VERBOSE, true );
if( isset($z['get_header']) ) curl_setopt( $ch, CURLOPT_HEADER, true );
if( isset($z['header']) ) curl_setopt( $ch, CURLOPT_HTTPHEADER, $z['header'] );
curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );
curl_setopt( $ch, CURLOPT_COOKIEJAR, 'cookiejarfilepath' );
curl_setopt( $ch, CURLOPT_COOKIEFILE, 'cookiejarfilepath' );
$result = curl_exec( $ch );
curl_close( $ch );
return $result;
}