cURL和SimpleBrowser

时间:2010-07-19 04:11:01

标签: php curl

我有一个脚本可以让我使用simplebrowser登录xbox live。然而,在登录后,xbox live上的浏览器检测器将我带到一个空白页面,该页面需要提交一个空表单。但是表单没有在我的浏览器上显示,因此简单的浏览器无法找到它提交。脚本的创建者说我需要使用cURL,如何使用简单的刷子卷发?

这是剧本。

require_once('simpletest/browser.php');

$browser = new SimpleBrowser();
$browser->get('http://live.xbox.com/en-US/profile/profile.aspx?pp=0&GamerTag=');
$browser->setField('Email Adress', 'blah@blah.com');
$browser->setField('Password', 'blah');
$browser->clickSubmitByName('SI');
$browser->submitFormById('fmHF');
return $browser->getContent();

1 个答案:

答案 0 :(得分:0)

我可以帮助您使用cURL发送表单。 查看表单来源并从<form action="(here)" ...>获取表单操作网址,并将其放入$link变量中。 每个表单字段都放在带有字段名称的字符串中,如下所示:

$postdata = 'EmailAdress=blah@blah.com&Password=blah';

脚本的其余部分将如下所示:

$curl_obj = curl_init();
curl_setopt($curl_obj, CURLOPT_URL,$link);
curl_setopt($curl_obj, CURLOPT_TIMEOUT, 20);
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($curl_obj, CURLOPT_COOKIESESSION, true);
curl_setopt($curl_obj, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($curl_obj, CURLOPT_COOKIEJAR, "cookiefile");
curl_setopt($curl_obj, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_obj, CURLOPT_POST, 1);
curl_setopt($curl_obj, CURLOPT_POSTFIELDS, $postdata);
$response = curl_exec($curl_obj);

$response变量中将返回页面内容。 或只是return curl_exec($curl_obj);