2010-06-23 65 views
0

如何让表单能够填充url的字段?如何自动填写表单域

例如:如果我有两个字段,用户名和密码,并且我的表单位于form.html,我怎样才能让form.html?username=example自动填入用户名字段中的“example”。

回答

2

表单必须从URL中读取变量并解析它们,然后将这些值重新发布到字段中。举例来说,使用PHP,这将是:

<?php $sName = $_GET['name']; ?> 
...some HTML goes here... 
<input type="text" id="name" name="name" value="<?= $sName ?>" size="60" /> 

这也可以在jQuery中使用location.href价值得到充分的URL来完成,然后与分裂几次分裂成URL部分()函数,然后在jQuery中使用$('#name')。val(sName)将值发布到该字段中。

但是,您必须考虑几个安全隐患。它不再是可取任何更多采取原始GET值而不进行一些XSS预防步骤运行它:

http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

下面是一些不怀好意的人可以使用针对与原GET值工作的网站:

http://ha.ckers.org/xss.html

所以要小心。

0

Web服务器语言(例如PHP)必须访问变量(例如$ _GET [“username”])并将它们作为值提供给HTML字段。不要忘记在HTML中使用method =“get”。

0

如果你的网址是form.html,那么你将如何结束form.html?username = example?

?username = example是一个查询字符串。如果您使用GET方法提交表单,它将使用查询字符串并将其附加到您的url,因此您得到form.html?username = example的方式是,如果用户将其用户名输入为“example”,然后提交表格。

2

好的,所以用户把这个URL放到他的浏览器中,向服务器发出一个请求,然后页面返回给用户。您可以使用两种一般方法填写表单详细信息。 1.你可以在服务器上实现它。 2.你可以在客户端进行。如果你想让它在服务器上发生,那么你将需要使用像ASP.NET,PHP,JSP等服务器端技术。如果你想让它发生在客户端上,那么你需要一个客户端技术,几乎可以肯定是JavaScript。

关于这件事还有很多要说的,包括有关跨站脚本安全漏洞的警告,但现在我会离开这些。