首页>>技术前沿>>网站/软件行业动态
数据交互技巧
作者:西安软件公司 | 转载 来源:西安软件公司 | 时间:2018年9月30日| 点击:0次 | 【评论】

张喵喵
(基础篇)PHP与Web页面交互
PHP与Web页面交互是实现PHP网站与用户交互的重要手段。在PHP中提供了两种与

Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递。

 

这里我们将详细讲解表单的相关知识,为以后学习PHP页面交互做好铺垫。

 

1 、创建表单

Web表单的功能是让浏览者和网站有一个互动的平台。Web表单主要用来在网页中发

送数据到服务器,如提交注册信息时需要使用表单。当用户填写完信息后执行提交

(submit)操作,于是将表单中的数据从客户端的浏览器传送到服务器端,经过服

务器端PHP程序进行处理后,再将用户所需要的信息传递回客户端的浏览器上,从

而获得用户信息,使PHP与Web表单实现交互。使用<form>元素,在HTML标记间插入

表单元素,即可创建一个表单。

 

代码片段

<form name="form_name" method="method" action="url" enctype="value"

target="target_win" id="id">

……

</form >

属性

说明

name

表单名

method

设置表单的提交方式,即GET或则POSt(GET方法将表单内容附加在URL地址后面。

POST方法将表单中的信息作为一个数据发送到服务器处理程序中,在浏览器的地址

栏不显示提交的信息。Method默认为get)

action

设置表单数据提交的URL(相对位置或则绝对位置)

enctype

指定数据传送到服务器时浏览器使用的编码类型(用于对表单内容进行编码的

MIME 类型。)

target

设置返回信息的显示格式

 

application/x-www-form-urlencoded 默认的MIME类型,表示表单数据应该被编码

成一个长串。

Multipart/form-data:上传文件专用类型,表示将每一个编码作为一个独立的部分

使用。

Text/plain:将表单数据提交给一个电子邮件地址,数据以纯文本形式进行编码,

其中不含任何控件或格式字符。

 

target属性值:

<form>标记中target属性的设置,可以控制提交页在窗口中的打开方式。

_blank:将返回页面信息显示在新的窗口中。

_parent:将返回信息显示在父级窗口中。

_self:将返回信息显示在当前窗口中。

_top:将返回信息显示在顶级窗口中。

 

在使用form表单时,必须要指定其行为属性action,它指定表单提交数据的处理页

。GET方法是将表单内容附加在URL地址后面;POST方法是将表单中的信息作为一个

数据块发送到服务器上的处理程序中,在浏览器的地址栏不显示提交的信息。

method属性默认为GET方法。

 

2 、认识表单元素

表单由表单元素组成。常用的表单元素有以下几种标记:输入域标记<input>、选

择域标记<select>和<option>、文本域标记<textarea>等。下面分别进行介绍。

 

2.1 输入域标记<input>

输入域标记<input>是表单中最常用的标记之一。常用的文本域、按钮、单选按钮

及复选框等构成了一个完整的表单。

 

参数name是指输入域的名称,参数type是指输入域的类型。在<input type=" ">标

记中一共提供了10种类型的输入区域,用户所选择使用的类型由type属性决定。

type属性取值及举例如表所示。

 

2.2 选择域标记<select>和<optiom>

通过选择域标记<select>和<option>可以建立一个列表或者菜单。菜单节省空间,

正常状态下只能看到一个选项,单击按钮打开菜单后才能看到全部的选项。列表可

以显示一定数量的选项,如果超出了这个数量,会自动出现滚动条,浏览者可以通

过拖动滚动条来查看各选项。

 

语法:

参数name表示选择域的名称;参数size表示列表的行数;参数value表示菜单选项

值;参数multiple表示以菜单方式显示数据,省略则以列表方式显示数据。

 

2.3 文本域标记<textarea>

文本域标记<textarea>用来制作多行的文本域,可以在其中输入更多的文本。

 

参数name表示文本域的名称;rows表示文本域的行数;cols表示文本域的列数(这

里的rows和cols以字符为单位);value表示文本域的默认值。warp用于设定显示

和送出时的换行方式,值为off表示不自动换行;值为hard表示自动按Enter键换行

,换行标记一同被发送到服务器,输出时也会换行;值为soft表示自动按Enter键

换行,换行标记不会被发送到服务器,输出时仍然为一列。

 

3 、在Web页面中创建表单

在一个Web页面中,允许有多个表单,在编写代码时,由表单的name和ID属性值对

各个表单进行区分。

 

4 、在Web页面中嵌入PHP脚本

在Web页中嵌入PHP脚本的方法有两种:一种是直接在HTML标记中添加"<?php?>"PHP

标记符,写入PHP脚本;另二种是对表单元素的value属性进行赋值。下面分别对这

两种方法进行讲解。

 

4.1 直接添加标记符

在Web编码过程中,通过在HTML标记中添加PHP脚本标记"<?php ?>"来嵌入PHP脚本

,两个标记之间的所有文本都会被解释为PHP语言,而标记之外的任何文本都会被

认为是普通的HTML。

 

4.2 为表单赋值

在Web程序开发过程中,为了使表单元素在运行时有默认值,通常需要对表单元素

的value属性进行赋值。下面通过具体的实例讲解赋值的方法。

 

5 、提交表单数据

交表单数据有两种方法:POST方法和GET方法。采用哪种方法提交表单数据由

<form>表单的method属性值决定。下面详细讲解这两种提交表单数据的方法。

 

5.1 POST方法

应用POST方法提交表单数据的方法非常简单,只需要将<form>表单中的method属性

值设置成"POST"即可。POST方法不依赖于URL,不会将传递的参数值显示在地址栏

中。另外,POST方法可以没有限制地传递数据到服务器,所有提交的信息在后台传

输,用户在浏览器端是看不到这一过程的,安全性高。所以,POST方法比较适合用

于发送一个保密的(如信用卡号)或者比较大量的数据到服务器。

<body>

   <form name="example" method="post"action="success.php">

       姓名:<inputtype="text" name="name"/>  <br/>

       密码 :<input type="password" name="password"/>

                    <inputtype="submit" value="提交"/>

   </form>

</body>

 

5.2 GET方法

GET方法是<form>表单中method属性的默认方法。使用GET方法提交的表单数据被附

加到URL上,并作为URL的一部分发送到服务器端。在程序的开发过程中,由于GET

方法提交的数据是附加到URL上发送的,因此,在URL的地址栏中将会显示"URL+用

户传递的参数"。

<body>

   <form name="example" method="get"action="success.php">

       姓名:<inputtype="text" name="name"/>  <br/>

       密码 :<input type="password" name="password"/>

                    <inputtype="submit" value="提交"/>

   </form>

</body>

显而易见,这种方法会将参数暴露无疑。如果用户传递的参数是非保密性的参数(

如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[]全局变量可以获取表单元素的值。在实际程序开发过程中,使

用哪种方法获取数据资源,是由<form>表单元素的method属性决定的。如果表单中

method属性指定的是用POST方法进行数据传递,那么在处理数据时就应该使用

$_POST[ ]全局变量获取表单数据。

 

通过$_POST[ ]全局变量获取表单数据,实际上就是获取不同的表单元素的数据。

<form>标签中的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[]传参的方法获取的变量值,保存之后任何页面都可以使用。但是

这种方法很耗费系统资源,建议读者慎重使用。

分类: PHP入门知识
好文要顶 关注我 收藏该文   
张喵喵
关注 - 0
粉丝 - 19
+加关注
0 0
? 上一篇:(基础篇)数组函数详解
? 下一篇:(基础篇)PHP与JavaScript交互
posted on 2016-10-30 14:56 张喵喵 阅读(5599) 评论(0) 编辑 收藏

刷新评论刷新页面返回顶部
注册用户登录后才能发表评论,请 登录 或 注册,访问网站首页。
【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库!
【免费】要想入门学习Linux系统技术,你应该先选择一本适合自己的书籍
【前端】SpreadJS表格控件,可嵌入应用开发的在线Excel
【直播】如何快速接入微信支付功能
腾讯云
最新IT新闻:
· 知行不合一,Elon Musk最大的敌人居然是自己?
· Spotify终止了一项要求家庭套餐用户共享GPS位置的测试
· AI画的画要上佳士得拍卖了,起拍价1万欧元!
· 2元一袋和10元一袋的盐到底差在哪?终于清楚了
· Facebook CEO扎克伯格自己的账户也被黑
? 更多新闻...
华为云HC0917
最新知识库文章:
· 为什么说 Java 程序员必须掌握 Spring Boot ?
· 在学习中,有一个比掌握知识更重要的能力
· 如何招到一个靠谱的程序员
· 一个故事看懂“区块链”
· 被踢出去的用户
? 更多知识库文章...
公告
昵称:张喵喵
园龄:1年11个月
粉丝:19
关注:0
+加关注
导航
博客园
首页
新随笔
联系
订阅订阅
管理
< 2018年9月 >
日 一 二 三 四 五 六
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6
统计
随笔 - 52
文章 - 0
评论 - 3
引用 - 0
搜索

 

 
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
php简单基础(1)
PHP入门知识(19)
PHP实用知识(32)
随笔档案
2016年11月 (5)
2016年10月 (47)
最新评论
1. Re:(进阶篇)Cookie与 Session使用详解
厉害了
--02仰望天空
2. Re:(基础篇) 正则表达式详解
好看
--赫赫001
3. Re:(实用篇)浅谈PHP拦截器之__set()与__get()的理解与使用方法
构造方法默认存在的吧?
--Recoder
阅读排行榜
1. (基础篇)正则表达式的语法汇总与详细介绍(11599)
2. (基础篇) php中0与空 Null false的区别(8219)
3. (进阶篇)Cookie与 Session使用详解(7688)
4. (基础篇)PHP获取时间、时间戳的各种格式写法汇总(5781)
5. (实用篇)PHP ftp上传文件操作类(5739)
评论排行榜
1. (基础篇) 正则表达式详解(1)
2. (进阶篇)Cookie与 Session使用详解(1)
3. (实用篇)浅谈PHP拦截器之__set()与__get()的理解与使用方法(1)
推荐排行榜
1. php基础(1)
2. (基础篇)PHP字符串操作(1)
3. (基础篇)正则表达式的语法汇总与详细介绍(1)
4. (基础篇)字符串定义与操作(1)
5. (进阶篇)PHP实现用户注册后邮箱验证,激活帐号(1)
Powered by: 博客园 Copyright ? 张喵喵

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 交互 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、弈聪软件网站内容中凡注明“来源:XXX(非陕西弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,APP开发,微信小程序开发,大数据平台开发,区块链技术开发等软件开发技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“陕西弈聪”的作品系本站版权所有,任何人转载请署名来源,否则陕西弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。