form开始标签可以有一些属性,其中最重要的就是action和method。将action 属性的值设为访问者提交表单时服务器上对数据进行处理的脚本的URL。例如,action="save-info.php"。
method 属性的值要么是get, 要么是post。大多数情况下都可以使用post,不过每种方法都有其用途,了解其用途有助于理解它们。
<form>标签包含很多属性,其中HTML5支持的属性如表1所示。
表1 HTML5支持的<form>标签属性
| 属性 | 值 | 说明 |
|---|---|---|
| accept-charset | charset_list | 规定服务器可处理的表单数据字符集。 |
| action | URL | 规定当提交表单时向何处发送表单数据。 |
| autocomplete | on、off | 规定是否启用表单的自动完成功能。 |
| enctype | 参考下面说明 | 规定在发送表单数据之前如何对其进行编码。 |
| method | get、post | 规定用于发送 form-data 的 HTTP 方法。 |
| name | form_name | 规定表单的名称。 |
| novalidate | novalidate | 如果使用该属性,则提交表单时不进行验证。 |
| target | _blank、_self、_parent _top、framename | 规定在何处打开 action URL。 |
【提示】
如果对表单使用method="get",那么表单提交后,表单中的数据会显示在浏览器的地址栏里。通常,如果希望表单提交后从服务器得到信息,就使用get。例如,大多数搜索引擎都会在搜索表单中使用get提交表单,搜索引擎会得到搜索结果。由于数据出现在URL中,因此用户可以保存搜索查询,或者将查询发给朋友。
如果对表单使用method="post",那么提交表单后,表单中的数据不会显示在浏览器的地址栏里,这样更为安全。同时,比起get,使用post 可以向服务器发送更多的数据。通常,post 用于向服务器存入数据,而非获取数据。因此,如果需要在数据库中保存、添加和删除数据,就应选择post。例如,电子商务网站使用post 保存密码、邮件地址以及其他用户输入的信息。通常,如果不确定使用哪一种,就使用post,这样数据不会暴露在URL 中。
【补充】
表单从访问者那里收集信息,脚本则对这些信息进行处理。脚本可以将信息记录到服务器上的数据库里,通过电子邮件发送信息,或者执行很多其他的功能。
有很多语言都可以用于编写表单处理脚本。对于刚起步的读者来说,PHP 是一个不错的选择,因为用它处理一些常见任务很简单。除了PHP,还可以选择其他语言,如Django、Ruby、ASP.NET、JSP等。
从服务器接收数据尤其需要注意安全性。不要对数据作任何假设,因为即便对表单建立了安全措施,有人也可以创建他们自己的表单,调用你的脚本并发送无数的垃圾信息。他们还可能提交恶意文本,损坏服务器上的数据。
表单验证指的是提交表单时,对用户输入的每个字段的内容进行检查,看是否符合预期的格式。例如,对于电子邮件字段,检查输入是否为正确的电子邮件地址格式。
有的HTML5表单元素有内置的验证功能。有的网站使用JavaScript 进行验证。这些都不能完全替代服务器端验证,因为旧的浏览器或禁用JavaScript 的浏览器不会执行客户端验证。进行服务器端验证也是出于安全性考虑。总之,必须考虑将服务器端的验证加入表单处理脚本。