如何以编程方式填写表单的字段?

时间:2016-07-18 15:57:30

标签: java html

我试图用Java编写一个简单的自动登录程序。 登录页面是" login.php" (不是我的!),它有以下形式:

<form action="login.php" method="post" name="FormLogin" onsubmit="return validalogin();"> 
 <div class="mainContentTitolo1">Inserisci i dati</div>
      <div class="table">
        <div class="tr">
            <div class="th">
               <label for="username">Nome Utente.</label>
            </div>            
            <div class="td">
               <input type="text" name="username" id="username" accesskey="m" tabindex="1" size="20" maxlength="16" value=""/>
            </div>
        </div>
        <div class="tr">
            <div class="th">
                <label for="password">Password</label>
            </div> 
            <div class="td">
               <input type="password" name="password" id="password" accesskey="p" tabindex="2" size="20" maxlength="16" value=""/>
       </div>        
     </div>        
         <input type="hidden" name="refer" value="$refer" />        
         <input type="hidden" name="invio" value="1" />        
         <div class="tr">            
             <div class="tdcolspanallcenter">
                  <input type="image" src="../../images/conferma.gif" tabindex="3" alt="Conferma login" onclick="return validalogin();" />
             </div>        
          </div>        
          <div class="tr">            
                <div class="tdcolspanallcenter">Collegati            
                </div>        
          </div>    
      </div>
</form>  

很遗憾,我无法填写&#34;用户名&#34;和#34;密码&#34;领域。 我尝试使用链接(使用CookieHandler和HttpURLConnection类),如:

https://.../login.php?username=BROWN&password=FOX

但只有&#34;用户名&#34;现场结果填写,我收到了错误的Cookie。 在浏览器&#34;源代码&#34;我可以看到结果:

[...]
<input type="text" name="username" id="username" accesskey="m" tabindex="1" size="20" maxlength="16" value="BROWN"/>
[...]
<input type="password" name="password" id="password" accesskey="p" tabindex="2" size="20" maxlength="16" value=""/>
[...] 

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

浏览器不允许您使用Cookie或URL传递密码字段(类型)值,如果它们对机器人来说是天堂:)。 如果您坚持使用URL中的参数自动填写密码字段,请将其更改为<input type="text" name="password" id="password" accesskey="p" tabindex="2" size="20" maxlength="16" value=""/>,因为无论如何每个人都可以在URL中看到密码