最近需要在网页上做一个修改bugzilla上bug状态的脚本,在网上找了一些方法以后,看到有curl和snoopy两种方法,但是两种方法现在就达到了一个目标,模拟登录上网页了,但是在修改bug的时候返回结果不对。例如:include "Snoopy.class.php";
$snoopy = new Snoopy;
$formvars["Bugzilla_login"] = "XXX";
$formvars["Bugzilla_password"] = "XXX";
$formvars["submit"] = "Log in";
$submit_url="http://bugzilla.com/index.cgi?GoAheadAndLogIn=1";
$snoopy->submit($submit_url,$formvars);
$snoopy->setcookies();
$cookies = $snoopy->cookies;
####################
$submit_str["knob"] = "open";
$submit_str["resolution"] = "Accepted";
$fetch_url = "http://bugzilla.com/show_bug.cgi?id=366374";
$snoopy->submit($fetch_url,$submit_str);这一块代码确实可以登录上,返回网页正常。当运行######下面的代码时,返回的结果却不是该bug的页面,但是用fetch命令获取该页面是正常的,我认为在修改时,由于该页面是包含了多个表格,并且submit都有两个,因此我怀疑执行下面的submit命令时,并没有往我所想的表中post,因此我想用类似python中的br.select_form的这么个函数来确定我要提交哪个表,但是搜索以后并没有发现有这么个方法?
请大家帮忙看下!