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与Web页面交互的更多相关文章

  1. 记Outlook插件与Web页面交互的各种坑 (含c# HttpWebRequest 连接https 的完美解决方法)

    1) 方案一,  使用Web Service  基础功能没问题, 只是在连接https (ssh) 网站时, 需要针对https进行开发 (即http 和https 生成两套接口, 不太容易统一 ). ...

  2. PHP与web 页面交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段.在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 这里我们将详细讲解表单的相关知识,为 ...

  3. 5.PHP与Web页面交互

    PHP与Web页面交互 PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 表单提交用户名字和密码: <form name "form ...

  4. php与web页面交互(二)

    一.获取表单数据 1.1 使用POST()方法提交表单  ---POST()方法可以没有限制地传递数据到服务器,所提交的数据在后台传输,用户在浏览器端是看不到这一过程的,安全性高,适用于发送保密数据和 ...

  5. php与web页面交互

    一.web表单 web表单的功能是让浏览者和网站有一个互动的平台.web表单主要用来在网页中发送数据到服务器. 1.1 表单的创建 使用form标记,并在其中插入相关的表单元素,即可创建一个表单. & ...

  6. (基础篇)PHP与JavaScript交互

    一.了解javascript Javascript是脚本编程语言,支持WEB应用程序的客户端和服务器端构件的开发,在WEB系统中得到了非常广泛的应用. 1. 什么是javascript Javascr ...

  7. PHP关于web页面交互内容

    学php学了有一段时间了总结总结给大家分享一下 PHP中的引用 第一段程序: <?php $first_name="firstName"; $first=&$firs ...

  8. PHP 笔记——Web页面交互

    一.客户端数据提交方法 客户端浏览器的数据通常使用 GET.POST 方式提交到服务器. 1.GET方式 GET方式指直接在URL中提供上传数据或者通过表单采用GET方式上传. http://url? ...

  9. Mobile testing基础之Native、Web、Hybrid、activity、webview

    应用一词指的是app,即application.原生应用指的是能直接运行于当前操作系统的应用程序:web应用指需要在浏览器中运行的网页应用,由于界面体验.功能上都更加强大,可媲美原生应用,故称web应 ...

随机推荐

  1. 斐波那契博弈(Fibonacci Nim)

    问题: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍. ...

  2. 批量插入使用SqlBulkCopy

    对于大量的数据插入,我们可以使用批量插入功能来提升性能,例如.

  3. cf731E

    题意:一个游戏,由n张贴纸组成.贴纸排成一排,并且纸条上标有数字,玩家轮流揭下m张从左到右连续的纸条(m大等2),揭下后玩家得分累加这些纸条的sum,并且在剩下纸条最左边贴上新的纸条,数值为揭下纸条的 ...

  4. 仿淘宝js图片切换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. STL 自学

    STL 一.vector动态数组 1 包含头函数 #include<vector> 2 函数的声明: vector<int> v; vector<int> v[ma ...

  6. POJ 2763

    题意:给一个数,边之间有权值,然后两种操作,第一种:求任意两点的权值和,第二,修改树上两点的权值. #pragma comment(linker, "/STACK:1024000000,10 ...

  7. 展辰涂料如何利用K2BPM加强流程管控?

    展辰涂料集团股份有限公司是一家集环保涂料研发.生产.销售和工程施工为一体的国家级高新技术企业.展辰涂料集团股份有限公司是我国最大的民族涂料企业之一,自成立以来就高度注重产品技术研发,截至目前,公司已取 ...

  8. C语言中的getchar和putchar详解

    首先给出<The_C_Programming_Language>这本书中的例子: #include <stdio.h> int main(){    int c;     c ...

  9. Android中 服务里的方法抽取成接口

    1 写个类继承Service 重写 onBind方法 返回一个IBinder 对象(传递到连接成功时用) 2 服务中 写一个内部类 继承IBinder 并且实现一个接口(用于抽取方法)继承IBinde ...

  10. What am I missing out in life if I don't have a girlfriend?

    http://www.quora.com/What-am-I-missing-out-in-life-if-I-dont-have-a-girlfriend/answer/Kelly-Erickson ...