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与web 页面交互的更多相关文章
- (基础篇)PHP与Web页面交互
PHP与Web页面交互是实现PHP网站与用户交互的重要手段.在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 这里我们将详细讲解表单的相关知识,为 ...
- 记Outlook插件与Web页面交互的各种坑 (含c# HttpWebRequest 连接https 的完美解决方法)
1) 方案一, 使用Web Service 基础功能没问题, 只是在连接https (ssh) 网站时, 需要针对https进行开发 (即http 和https 生成两套接口, 不太容易统一 ). ...
- 5.PHP与Web页面交互
PHP与Web页面交互 PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 表单提交用户名字和密码: <form name "form ...
- php与web页面交互(二)
一.获取表单数据 1.1 使用POST()方法提交表单 ---POST()方法可以没有限制地传递数据到服务器,所提交的数据在后台传输,用户在浏览器端是看不到这一过程的,安全性高,适用于发送保密数据和 ...
- php与web页面交互
一.web表单 web表单的功能是让浏览者和网站有一个互动的平台.web表单主要用来在网页中发送数据到服务器. 1.1 表单的创建 使用form标记,并在其中插入相关的表单元素,即可创建一个表单. & ...
- PHP关于web页面交互内容
学php学了有一段时间了总结总结给大家分享一下 PHP中的引用 第一段程序: <?php $first_name="firstName"; $first=&$firs ...
- PHP 笔记——Web页面交互
一.客户端数据提交方法 客户端浏览器的数据通常使用 GET.POST 方式提交到服务器. 1.GET方式 GET方式指直接在URL中提供上传数据或者通过表单采用GET方式上传. http://url? ...
- 1.PHP与Web页面的交互
一.概览: PHP是一种专门用于Web开发的服务器端脚本语言.从这个描述可以知道,PHP要打交道的对象主要有服务器(Server),和基于Web的HTML(超文本标识语言).使用PHP处理Web应用时 ...
- 转:Web页面通过URL地址传递参数常见问题及检测方法
Web页面即我们在浏览器中所看到的网页,在Web应用程序中,其页面往往需要进行动态切换和数据交互,页面间的数据常规传递方法有多种,本文主要介绍Web页面处理程序中常见的URL地址参数传递方法,包括概述 ...
随机推荐
- xml中${}的使用含义(美元符号大括号,以Spring、ibatis、mybatis为例)
项目中,经常会在xml中看到这样的写法: <properties resource="properties/database.properties"/> <dat ...
- Webpack4 学习笔记三 ES6+语法降级为ES5
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 Webpack 将es6.es7语法降级为es5 需要通过 babel JavaScript编译器. 安装: npm i babel ...
- MySQL另类的备份恢复方法——innodb可传输表空间
Preface There're many ways in backing up or migrating data from one server to another one.Lo ...
- Thymeleaf显示Map集合数据
<select class="form-control zz-set-input-size" id="channel"> <option va ...
- Python__关于列表的引用 以append操作为例
对于列表这样的可变类型来说,对它操作是不会改变内存地址的. 若列表里面存的元素是整数这样的不可变类型,若修改这个元素那地址还是会改变,如: >>> a = [,,] >> ...
- POJ 1981 最大点覆盖问题(极角排序)
Circle and Points Time Limit: 5000MS Memory Limit: 30000K Total Submissions: 8346 Accepted: 2974 ...
- PHP.36-TP框架商城应用实例-后台12-商品管理-主分类添加、修改、搜索(连表查询)
需求:一个商品必须有一个主分类,一个主分类可以有多个商品 [一对多] 修改表p39_goods,增加外键约束,增加索引 主分类添加[控制器->页面] 1.在控制器GoodsController. ...
- 设计模式--单例模式Singleton
单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军.单例模式的书写又分为饿汉模式和懒汉模式 饿汉模式 类中代码 package demo; public cla ...
- P1783 海滩防御
P1783 海滩防御 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭 ...
- printf("%d \n", -1 < sizeof(int) ) Implicit conversion
; printf( < sizeof(int) ); 结果输出: 0 在写程序时,经常对于比较很随意,特别是类型不同时,然而这带来的错误也是意想不到,却理所当然. 剖析: sizeof(int) ...