我有一个脚本可以让我使用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();
答案 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);