我正在尝试使用以下cURL操作登录bangme.net图片评级网站。当我检查登录表单时,这些ID是signin_UserName,signin_UserPass。名称是签名$用户名,签署$ UserPass。该脚本似乎没有与下划线一起工作,因为结果导致我要求我登录尽可能远的页面。我无法使用美元符号名称,因为它把它变成了一个变量。我注意到这个和类似脚本的一些示例显示了一些以'&'标志开头的字段,当它们没有在他们想要登录的网页的表单上。这是做什么的?任何你可以提供的援助将不胜感激。谢谢。使用卷曲登录
$username = "username";
$password = "password";
$url = "http://www.bangme.net/starform.aspx";
$cookie = "cookie.txt";
$postdata = "signin_UserName=" .$username . "signin_UserPass=" .$password;
$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);
echo $result;
curl_close($ch);
新代码:
$username = "username";
$password = "password";
$url = "http://www.bangme.net/signin.aspx";
$cookie = "cookie.txt";
$post = array(
'__EVENTTARGET'=>"" ,
'__EVENTARGUMENT'=>"",
'__VIEWSTATE'=>"/wEPDwUJMzQ0MjU1MjA0ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAwUJbGFzdHBob3RvBQh2b3RleWVzMgUHdm90ZW5vMgfkai25gOMuDdbmzYMWHA2LgYKt",
'__EVENTVALIDATION'=>"/wEWDgLmnpGMBwKOwMbqCwK4wb4IAv/10agEAqHH7a8KAtXfk+ULAt/Q94gCAvS2udYOAqrdhtcHAq+k5d0LAo+Au5MKApm/3+0OAqDCuuYMArCmgTeosqrEgmB3P5bavC40rTc6dbeF1g==",
'signin$UserName'=>$username ,
'signin$UserPass'=>$password ,
'signin$Button1.x'=>42,
'signin$Button1.y'=>17
);
$postData = http_build_query($post);
$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);//changed from 0 to 1
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//new
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//new
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
谢谢巴巴,你能告诉我如何实现你在C中描述的参数吗? – KiloJKilo 2012-04-03 00:47:03
以及您如何确定这些参数是必需的? – KiloJKilo 2012-04-03 00:54:39
这就是当你点击提交 – Baba 2012-04-03 00:56:22