登录界面很简单,要求输入用户名、密码。查看代码,除了这两个必输项外,还有两个隐藏项,代码如下:<form>
<input type="text" name="name" id="edit-name" value="" class="form-text required" />
<input type="password" name="pass" id="edit-pass"  class="form-text required" />
<input type="submit" name="op" id="edit-submit" value="Log in"  class="form-submit" /><input type="hidden" name="form_build_id" id="form-4c0f650a957e44f0697076345995c70f" value="form-4c0f650a957e44f0697076345995c70f"  />
<input type="hidden" name="form_id" id="edit-user-login-block" value="user_login_block"  />
</form>后面两个必输项的作用是什么?
如果我要构造一个隐藏的表单来提交登录信息,我因该如何模仿,是这样吗:<form>
<input type="hidden" ....... value="username" />
<input type="hidden" ....... value="password" />
<input type="hidden" name="form_build_id" id="form-4c0f650a957e44f0697076345995c70f" value="form-4c0f650a957e44f0697076345995c70f"  />
<input type="hidden" name="form_id" id="edit-user-login-block" value="user_login_block"  />
</form>

解决方案 »

  1.   

    不行,我在网站上试了,不要隐藏相无法登录。加上两个隐藏相就可以正常登录。
    这是提供session给服务器吗?不明白
      

  2.   

    LZ不会是copy人家的代码过来用吧。
      

  3.   

    不是啊,我自己的站点上,用Drupal搭建的网站,但是我不知道这个表单是提交到哪个文件上,是index.php吗?这个文件很简单,只是调用其他函数,我不知道这个表单验证最后到了什么地方。
      

  4.   

    翻书发现,这个建站软件要求用户必须要开启cookie,如果没有开启,则只能作为匿名用户。
      

  5.   

    在这里的这两项隐藏域数据,是你访问这个页面时由后台程序自动放置的,同时在服务器的SESSION里也有相应的数据(不一定完全相同,但存在一定必然转换对应关系).然后当你每次提交时,后台接收到后与SESSION值按照某种规则进行比较,作为验证,证明数据是通过这个正常渠道提交的.如果你不是通过这个页面正常访问,而是在其它页面(比如你自己建的其它页面里)直接向后台接收数据的话,那么由于它之前并没有产生相应的SESSION数据,所以即使你知道转换规则都没用,因为对方压根没数据,你模仿出什么都不对,但要是没有提供,又肯定不行,对方会检测要求传递过去的数据里这个必须有.如果是自己的网站,你这样问很奇怪.要想不经过这个验证直接提交数据的话,那就另外写一个页面,何必纠结这个呢.
      

  6.   

    这个原因,就是因为用了Session产生的. 因为服务器上的Session很多(可能有多个用户同时用),怎么知道哪个是某一个用户的呢? 这就得通过在客户端的Cookie里保留一个SessionID,当用户提交后,后台程序中取Session时底层的机制就是通过传递过来的用户Cookie数据里的SessionID找到和此用户对应的Session并读其中的值.所以如果禁用COOKIE,就无法正常完成这个过程,只能取消这个功能.
      

  7.   

    隐藏域数据是肯定起作用的!
    这一点毋庸置疑!
    至于起什么作用,这就要看自己的需求了。
    也就是说每个网站的隐藏域数据没有一样的作用,
    都是根据自己的需求添加的。
    比如说我有2个表单,放在了百度和Google页面中,
    但是我想统计数据那些是从百度提交的,
    那些是从Google提交的。
    我可能就会添加一个隐藏域数据,他的值就为“baidu”“google”,
    通过隐藏域数据分析数据。
    这只是一个应用,还有其它的。