php form 上传_php 表单form提交详细分析

一、表单form到底有什么作用

表单的作用是采集客户端提交的数据,并把数据提交给服务端。

比如在登录一个网站时,你需要输入自己的用户名和密码才能登陆。又比如你注册游戏账号时,你需要填写自己的邮箱、密码、年龄等等。

这些操作就要通过表单提交给服务器,最后由服务器记录在数据库。

二、表单form组成结构

html 表单是Web应用中最常用的组件,由提交按钮以及其他相关元素组成。表单被应用在各个领域中,用于实现注册用户、填写银行账户和登录等功能。说简单点就是一对form标签和input标签的组合。如下:

Contact List


Nickname:


Full Name:


Memo:

正如上所示,表单的两个标签必须是成对出现的:

。在一个HTML页面中允许有若干个表单,在编写时以表单的名字(name)和Form ID作为它们之间的区分。

form标签有两个必填的属性 : action,method。

action属性指的是接收处理结果的文件位置,当action值为空时,则提交给当前文件本身,如果action的值为其他文件或URL,则提交给该文件或URL地址处理。

method属性,顾名思义就是提交数据的方法,它有两个值可选:post/get ,post是隐藏传递,get是地址栏传递,果没有设置method属性或该属性为空值,浏览器默认method的值为POST方法。

form中可以添加文本框和按钮等表单元素,比如上面实例中的Nickname、Fullname、Memo和submit等都是表单元素,下面列出表单元素:

表单元素

说    明

input type="checkbox"

复选框,允许用户选择多个选择项

input type="file"

文件浏览框,当文件上传时,可用来打开一个模式窗口以选择文件

input type="hidden"

隐藏标签,用于在表单中以隐含方式提交变量值

input type="password"

密码文本框,用户在该文本框输入字符时将被替换显示为*号

input type="radio"

单选项,用于设置一组选择项,用户只能选择一个

input type="reset"

清除与重置表单内容,用于清除表单中所有文本框的内容,而且使选择菜单项恢复到初始值

input type="submit"

表单提交按钮

input type="text"

单行文本框

select

下拉列表框,可单选和多选。默认为单选,如果增加多项选择功能,增加即可

option

列表下拉菜单,和select配合使用,显示供选择的值

textarea

多行文本框,在使用文本框时需要关闭标签之间的文本内容,形成如下格式:你的文字

其中,hidden标签被称为隐藏或隐含的标签,它不会在用户浏览的页面界面上出现,当用户填写资料表单和跨页之间传值时,可以使用该标签传递一些隐含的值。

password密码文本框用于隐藏密码,用户输入的文本将以*显示在文本框中,但是密码并没有加密,只是被*替换显示,这点请注意。

下面介绍表单的属性,它们用于表单中约束表单元素的行为或显示

属性名称

说    明

name

文本框的名称,PHP根据该名称,在超级全局数组中建立以name为名称的键名

size

文本框的宽度,在select下拉菜单中,表示可以看到的选项行数

value

文本框中的默认值,注意,该值不能应用到type=password密码文本框以及type=file文件文本框中

multiple

此属性用于下拉列表菜单select中,指定该选项用户可以使用Ctrl和Shift键进行多选

rows

多行文本框显示时可以容纳的字符列数宽度

cols

多行文本框显示时可以容纳的字符行数高度

三、php如何获取表单数据

php获取表单数据有三种方式:

以$_GET方式获取表单数据

以$_POST方式获取表单数据

以$_REQUEST方式获取表单数据

$_GET只能获取get方法提交的数据,$_POST方法只能获取post方法提交的数据,而$_REQUEST能同时获取get和post方法提交的数据。

请看下面实例:

Contact List


Nickname:


Full Name:


Memo:

if($_POST["submit"]){

$Nickname=$_POST["Nickname"];

$Fullname=$_POST["Fullname"];

$Memo=$_POST["Memo"];

echo "
Nickname=$Nickname";

echo "
Fullname=$Fullname";

echo "
Memo=$Memo";

}

?>

四、get和post的区别

安全性

如果用get提交一个验证用户名和密码的form,一般认为是不安全的。因为用户名和密码将出现在URL上,进而出现在浏览器的历史记录中。显然,在对安全性有要求的情况下,应该使用post。

编码

HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype=”multipart/form-data”的话)。

注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。

提交的数据的长度

HTTP specification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度。测试表明如果URL超出这个限制,提交form时IE不会有任何响应。其它浏览器则没有URL的长度限制,因此其它浏览器能通过get提交的数据长度仅受限于服务器的设置。

而对于post,使用POST方式提交表单,通过HTTP协议的header部分传递表单数据,理论上数据的大小无上限。不过,在使用PHP进行POST提交 时,文件大小受PHP配置文件(php.ini)限制,我们可以修改php.ini文件中的post_max_size参数,可将默认的2M字节,修改为 自己需要的大小,但由于HTTP协议的特性,这个值不宜设置过大,最大以8M为宜。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值