日期:2014-05-17  浏览次数:20472 次

snoopy模拟登录问题
PHP code

<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 </HEAD>

 <BODY>
 <?php
include "Snoopy.class.php";
$snoopy = new Snoopy;

//获取表单需要的字段
/*
$snoopy->fetchform("http://www.phpx.com/happy/logging.php?action=login");
echo $snoopy->results."<br />"; 
*/

$submit_url = "http://www.phpx.com/happy/logging.php?action=login"; 
$submit_vars["cookietime"] = "2592000";
$submit_vars["loginfield"] = "username";
$submit_vars["username"] = "你的用户名"; //你的用户名
$submit_vars["password"] = "你的密码";  //你的密码
$submit_vars["questionid"] = "0";
$submit_vars["answer"] = "";    
$submit_vars["loginsubmit"] = "登录";
//$submit_vars["loginsubmit"] = "dl"; //可以
//$submit_vars["loginsubmit"] = ""; //不行
//问题1:为什么要加入上面那句:$submit_vars["loginsubmit"] = "登录",而且“登录”改为任何字眼都可以,但“”不可以
$snoopy->submit($submit_url,$submit_vars);
echo $snoopy->results;
//问题2:登录成功后跳转到http://127.0.0.1/snoopy/index.php
?>
 </BODY>
</HTML>






------解决方案--------------------
1.这个字段是表单的一个隐藏字段,如:<input type="hidden" value="XX"/>.
2.这是由表单提交后的处理脚本决定,照你说的情况,后面判断是用的!empty($_POST[loginsubmit]),不是Snoopy的问题.
3.$snoopy->submit($submit_url,$submit_vars);
$snoopy->fetch('http://www.phpx.com/happy/index.php');//直接抓取最终页面
echo $snoopy->results;