首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

snoopy登录失败,表单还有什么没提交呢?解决方法

2012-02-02 
snoopy登录失败,表单还有什么没提交呢?要登录的页面[codeHTML]!DOCTYPE HTML PUBLIC -//W3C//DTD HTML

snoopy登录失败,表单还有什么没提交呢?
要登录的页面
[code=HTML]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh">
<head>
<title>用户登陆</title>
<script type="text/javascript" src="/_global/resource/ext/ext-base.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/ext-core.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/om/ajax.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/util.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/widget-core.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/dragdrop.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/qtips.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/ux/FieldValidatePlugin.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/form.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/om/ExtExtra.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/om/ButtonPlugin.js" charset="UTF-8"></script>
<script type="text/javascript" src="/_global/resource/ext/package/button.js" charset="UTF-8"></script>
<script type="text/javascript">Ext.BLANK_IMAGE_URL="/_global/resource/ext/s.gif";</script>
<link class="x-skin" rel="stylesheet" type="text/css" href="/_global/resource/ext/skin/default/yuiext/css/ext-all.css"/>
<link class="x-skin" rel="stylesheet" type="text/css" href="/_global/resource/ext/skin/default/yuiext/css/ext-extra.css"/>
<script type="text/javascript" src="/_global/resource/ext/locale/ext-lang.js?zh_CN" charset="UTF-8"></script>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link href="css/logincss.css" rel="stylesheet" type="text/css"/>
<script LANGUAGE="javascript" src="js/login.js"></script>
<script LANGUAGE="javascript" src="js/openfull.js"></script>
<style type="text/css">
.body-login {
background-color: #B5D4C8;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
font-size:12px;
font-family:"宋体";
background-image: url(images/login-bg0.gif);
}
.input-login{
width: 140px;
border:1px solid #808080;
background-color:#FFFF00;
}
.x-form-text, textarea.x-form-field {
background:#FFFF00;
border:1px solid #808080;
padding:1px 3px;


}
</style>
<script type="text/javascript"> 
function Wopen()
{  
if(window.name != "big"){  
// 关闭老网页  
self.close();
window.open(location.href,"big","fullscreen=yes");}//新开全屏网页  
}  


</script></head>
<body id="j_id1" class="skin-default body-login">
<form id="loginForm" name="loginForm" method="post" action="/login.faces;jsessionid=KZxRTnfFh8gTX8tTL8GCVSy0RqzcrLxZxsP2lXNp1JLJWn5hPz6G!-23521500" enctype="application/x-www-form-urlencoded" onkeydown="submitform(event)">

<center>
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr align="center">
<td width="100%" align="center" height="598" background="images/login-bg.gif">

<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td colspan="2"><img src="images/login-02.gif"/></td>
  </tr>
  <tr>
  <td width="92">&nbsp;</td>
  <td width="208"><font color="red"><span id="loginForm:loginResult"></span></font></td>
  </tr>
<tr>
  <td align="right">用户名:</td>
  <td height="28" align="left"><table id="loginForm:userName_outer" cellspacing="0" cellpadding="0"><tr><td></td><td><div class="x-form-item"><div class="x-form-element"><input id="loginForm:userName" name="loginForm:userName" type="text" style="border:1px solid #808080;background-color:#FFFF00;"/></div></div></td></table>

  </td>
  </tr>
  <tr>
  <td align="right">密码:</td>
  <td height="28" align="left"><table id="loginForm:userPass_outer" cellspacing="0" cellpadding="0"><tr><td></td><td><div class="x-form-item"><div class="x-form-element"><input id="loginForm:userPass" name="loginForm:userPass" type="password" style="border:1px solid #808080;background-color:#FFFF00;"/></div></div></td></table>

</td>
  </tr>
  <tr>
<td>&nbsp;</td>
  <td>
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td width="40">&nbsp;</td>
  <td width="64" height="23" align="center"><span id="loginForm:login"></span>
<input type="hidden" name="bz" value="bz"/>
</td>
  <td>&nbsp;</td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
 
  </td>
  </tr>
</table>
</center><span id="loginForm_none"></span><input type="hidden" name="loginForm:_postback"/></form><script type="text/javascript" language="Javascript">document.forms['loginForm']._clientValidateFieldIds=new Array();document.forms['loginForm']._validateBeforeSubmit=true;OM.ajax.initForm(document.forms['loginForm'],{},null);</script><script type="text/javascript">


<!--
if(Ext && Ext.QuickTips)Ext.QuickTips.init();
var loginForm$userName,loginForm$userPass,loginbtn;
Ext.onReady(function(){

document.body.insertBefore(document.createElement('style'), document.body.firstChild );

OM.E(function(){loginForm$userName = new Ext.form.TextField({id:"loginForm:userName",
plugins:new Ext.ux.plugins.FieldValidatePlugin(),
validator:function(value){
var validators = [new RequiredValidator('用户名不能为空!')];
for(var n = 0; n < validators.length; n++){
var result = validators[n].validate(value);
if(result===true){
continue;
} else {
return result;
}
}
return true;
},
width:160,
value:'',
msgTarget:"qtip",
emptyText:"请输入用户名"})
;var fieldIds = document.forms['loginForm']._clientValidateFieldIds;
if (typeof fieldIds != 'undefined' && fieldIds instanceof Array) 
fieldIds.push('loginForm:userName')
;if(Ext.get('loginForm:userName')) {loginForm$userName.applyToMarkup('loginForm:userName');}
});
OM.E(function(){loginForm$userPass = new Ext.form.TextField({id:"loginForm:userPass",
plugins:new Ext.ux.plugins.FieldValidatePlugin(),
validator:function(value){
var validators = [new RequiredValidator('密码不能为空!')];
for(var n = 0; n < validators.length; n++){
var result = validators[n].validate(value);
if(result===true){
continue;
} else {
return result;
}
}
return true;
},
width:160,
inputType:"password",
value:'',
msgTarget:"qtip",
emptyText:"请输入密码"})
;var fieldIds = document.forms['loginForm']._clientValidateFieldIds;
if (typeof fieldIds != 'undefined' && fieldIds instanceof Array) 
fieldIds.push('loginForm:userPass')
;if(Ext.get('loginForm:userPass')) {loginForm$userPass.applyToMarkup('loginForm:userPass');}
});
OM.E(function(){loginbtn=new Ext.Button({text:"登 陆",
renderTo:"loginForm:login",
type:"submit",
disabled:false});
loginbtn.on('click', function(){if (function(){setcookie();}.apply(this)==false)return;OM.ajax.submit('loginForm',null,{'loginForm:login':''},false,'loginForm:login',loginbtn);});
loginbtn.allowReEnter=false;});
OM.E(function(){OM.ajax.initValidation('loginForm','loginForm:userName',loginForm$userName);
OM.ajax.initValidation('loginForm','loginForm:userPass',loginForm$userPass);
});
});
//-->
</script>
[code]

[解决办法]
还有,我大致看了下HTML代码,你模拟提交的数据太过理想,也就是说,你提交的数据是最原始的,而页面的表单数据在经过JS的多种处理后,已经发生变化.你已经追踪表单数据项到底经过哪些处理,然后提交最终的数据才是合理的,http://ip/login.faces我表示打不开.
[解决办法]
给你说一种比较通用的方法:利用cookie来登录,首先先登录这个网站,然后获取cookie(php ,js 都可以),然后实现代码如下:
$snoopy = new Snoopy;
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TheWorld)";//这项是浏览器信息,前面你用什么浏览器查看cookie,就用那个浏览器的信息(ps:$_SERVER可以查看到浏览器的信息)
$snoopy->referer = "http://www.discuz.net/";
$snoopy->rawheaders["COOKIE"]= "dznet_cookietime=2592000;dznet_onlineusernum=7816;dznet_sid=QtlC87;
dznet_auth=6bbeCQrzGv4eliNMLgU%2FlGZSpzbrsauGO1l0OBp6VQw5p0bcEg0xd4slYCM2ks%2FL0YCVYSO7XP2z8GMaxkPDUbXZCWft;
checkpm=1";
$snoopy->fetch("http://www.discuz.net/post.php?action=newthread&fid=2&extra=page%3D1");//获取发贴页面
echo $tempCn = $snoopy->results;

热点排行