要登录的页面
[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]

解决方案 »

  1.   

    重新贴代码:
    <!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>
      

  2.   


    <script type="text/javascript">
    OM.ajax.actionId='/login.faces;jsessionid=KZxRTnfFh8gTX8tTL8GCVSy0RqzcrLxZxsP2lXNp1JLJWn5hPz6G!-23521500';
    OM.ajax.viewState='XXXXXXXXXXXXXXX';
    </script>
    </body></html> <script>Ext.onReady(function(){document.getElementById("loginForm:userName").focus();setloginname()});</script><script type="text/javascript"><!--
    OM.L()
    --></script>
    这段和上面那段是登录页面代码
      

  3.   

    模拟登录代码:
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     </HEAD>
     <BODY>
    <?php
    include "Snoopy.class.php";
    $snoopy = new Snoopy;//获取表单需要的字段
    /*
    $snoopy->fetchform("http://ip/login.faces");
    echo $snoopy->results; 
    */$submit_url = "http://ip/login.faces"; 
    $submit_vars["loginForm:userName"] = "name"; //帐号
    $submit_vars["loginForm:userPass"] = "pass";  //密码
    $submit_vars["bz"] = "bz";
    $submit_vars["loginForm:_postback"] = "";
    $submit_vars["ext-gen25"] = "";  //登录按钮是这个吗?
    $snoopy->submit($submit_url,$submit_vars);
    echo $snoopy->results;
    ?>
     </BODY>
    </HTML>问题:无法成功模拟登录,请问表单还有什么没有提交或提交错误吗
      

  4.   

    还有,我大致看了下HTML代码,你模拟提交的数据太过理想,也就是说,你提交的数据是最原始的,而页面的表单数据在经过JS的多种处理后,已经发生变化.你已经追踪表单数据项到底经过哪些处理,然后提交最终的数据才是合理的,http://ip/login.faces我表示打不开.
      

  5.   

    http://ip/login.faces是一个内部网,“ip”表示是某个ip
      

  6.   

    给你说一种比较通用的方法:利用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;
      

  7.   


    1、 to ZT_King:使用HTTPWatch查看提交的数据后,发现提交的表单确实不全,补全后为:
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     </HEAD>
     <BODY>
    <?php
    include "Snoopy.class.php";
    $snoopy = new Snoopy;$submit_url = "提交页面"; 
    $submit_vars["loginForm:userName"] = "id";  //帐号
    $submit_vars["loginForm:userPass"] = "pass";  //密码
    $submit_vars["bz"] = "bz";
    $submit_vars["loginForm:_postback"] = "";$submit_vars["loginForm:login"] = "";
    $submit_vars["sourceWidgetClientId"] = "loginForm:login";
    $submit_vars["javax.faces.ViewState"] = "XXXXXXX";   //随机的,每次不一样$submit_vars["immediate"] = "false";//$submit_vars["ext-gen25"] = "";  //实际上不需要提交按钮$snoopy->submit($submit_url,$submit_vars);
    //echo $snoopy->results;
    $snoopy->fetch("登录后页面");
    echo $snoopy->results;?>
     </BODY>
    </HTML>
    但提示如下:Error 500--Internal Server Error 
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.5.1 500 Internal Server Error
    The server encountered an unexpected condition which prevented it from fulfilling the request.估计是javax.faces.ViewState字段是随机值做验证什么的,用旧值无法登录,所以“服务器产生一个阻止其满足请求的未知条件”我尝试用$snoopy->fetch("登录页面");
    echo $snoopy->results;抓取javax.faces.ViewState字段值,取得后立即提交,但同样的错误,javax.faces.ViewState相关的代码为:<script type="text/javascript">
    OM.ajax.actionId='/login.faces';
    OM.ajax.viewState='XXXXXX';  <!--  随机值 --> 
    </script>OM.ajax.viewState='XXXXXX'这个随机值我找不到其中的规律,请问有什么办法吗?2、to jiangchuan2009cookie的方法我还没有试,cookie会不会也出现变化的情况呢?