(基础篇)PHP与Web页面交互
优采云 发布时间: 2022-05-27 18:27(基础篇)PHP与Web页面交互
技术交流的同学欢迎加入
PHP自学与交流中心QQ群:153404408
PHP与Web页面交互是实现PHP网站与用户交互的重要手段。在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递。
这里我们将详细讲解表单的相关知识,为以后学习PHP页面交互做好铺垫。
1 、创建表单
Web表单的功能是让浏览者和网站有一个互动的平台。Web表单主要用来在网页中发送数据到服务器,如提交注册信息时需要使用表单。当用户填写完信息后执行提交(submit)操作,于是将表单中的数据从客户端的浏览器传送到服务器端,经过服务器端PHP程序进行处理后,再将用户所需要的信息传递回客户端的浏览器上,从而获得用户信息,使PHP与Web表单实现交互。使用
5.2 GET方法
GET方法是
显而易见,这种方法会将参数暴露无疑。如果用户传递的参数是非保密性的参数(如id=8),那么采用GET方法传递数据是可行的;如果用户传递是保密性的参数(如用户登录的密码,或者*敏*感*词*号等),这种方法就会不安全。解决该问题是将表单的method指定的GET方法改为POST方法。
注意:若要使用GET方法发送表单,URL的长度应限制在1MB字符以内。如果发送的数据量太大,数据将被截断,从而导致意外或失败的处理结果。
6 、POST方法与GET方法的使用区别
在浏览器中向服务器发送表单数据的方法有两种,即POST方法和GET方法。这两种方法在Web页面的应用上有着本质的不同。
POST方法发送变量数据时,对于用户而言是保密性质的。从HTTP协议来看,数据附加于header的头信息中,用户不能随意修改,这对于Web应用程序而言,安全性要好得多,而且使用POST方法向Web服务器发送数据的大小不受限制。
GET方法是在访问URL时使用浏览器地址栏传递值。GET方法方便直观,但缺点是访问该网站的用户也可以修改URL串后发送给服务器,GET传递的字符串长度有一定的限制,不能超过250个字符,如果超长,浏览器会自动截取,导致数据丢失或程序运行出错。另外,GET方法不支持ASCII字符之外的任何字符,如果包含有汉字或其他非ASCII字符,需要应用PHP的内置函数将参数值转换成其他编码格式进行传递。
因此,在网站开发过程中,程序员应根据实际需要灵活地选择POST方法和GET方法来提交表单数据。
7 、POST方法与GET方法的使用区别
PHP的全局变量有3种:$_POST[ ]、$_GET[ ]和$_SESSION[ ],分别用于获取表单、URL、Session变量的值。这3种方法在使用上有很大的区别,下面分别进行详细介绍。
7.1 $_POST[ ]全局变量
使用PHP的$_POST[]全局变量可以获取表单元素的值。在实际程序开发过程中,使用哪种方法获取数据资源,是由表单元素的method属性决定的。如果表单中method属性指定的是用POST方法进行数据传递,那么在处理数据时就应该使用$_POST[ ]全局变量获取表单数据。
通过$_POST[ ]全局变量获取表单数据,实际上就是获取不同的表单元素的数据。标签中的name是所有表单元素都具备的属性,即为这个表单元素的名称,在使用时需要使用name属性来获取相应的value属性值。所以添加的所有控件必须定义其name属性值,另外,为了避免获取的数据出现错误,表单元素在命名上尽可能不要重复,尽量使用具有一定意义的英文缩写或拼音命名。
7.2 $_GET[ ]全局变量
PHP使用$_GET[]全局变量获取通过GET方法传递的值,使用格式为:
$_GET[name]
例如,创建一个表单,设置method属性值为GET,添加一个文本框,name为user,获取表单元素值的代码如下。
注意:PHP可以应用$_POST[]或$_GET[]全局变量来获取表单元素的值。但值得注意的是,获取的表单元素名称区分字母大小写。如果在编写Web程序时忽略字母大小写,那么在程序运行时将获取不到表单元素的值或弹出错误提示信息。
7.3 $_SEESION[ ]全局变量
使用$_SEESION[]变量可以跨页获取变量的值,格式为:
$_SEESION[name]
在PHP动态页中,可以将变量或者表单元素的值赋值给$_SEESION[]全局变量,进而实现变量值或者表单元素值的跨页传递。
例如,建立一个表单,添加一个文本框,命名为user,应用$_SEESION[]全局变量获取表单元素的代码如下。
代码片段
$user=$_SESSION["user"]
应用$_SEESION[]传参的方法获取的变量值,保存之后任何页面都可以使用。但是这种方法很耗费系统资源,建议读者慎重使用。