当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP学习宝典-第九章

PHP
坏狼php学习 计数器实例代码
PHP学习一(基础)
PHP学习 运算符与运算符优先级
PHP学习 mysql
用PHP伪造referer突破网盘禁止外连的代码
php utf-8转unicode的函数
php代码出现错误分析详解
PHP伪静态写法附代码
PHP伪静态页面函数附使用方法
php下汉字转化为拼音的代码
js下函数般调用正则的方法附代码
php 前一天或后一天的日期
php 在线打包_支持子目录
php GD绘制24小时柱状图
php下检测字符串是否是utf8编码的代码
php5中date()得出的时间为什么不是当前时间的解决方法
[原创]效率较高的php下读取文本文件的代码
php文本操作方法集合比较
PHP远程连接MYSQL数据库非常慢的解决方法
PHP写入WRITE编码为UTF8的文件的实现代码

PHP学习宝典-第九章


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 253 ::
收藏到网摘: n/a

网页间的信息传递

本章重点

为什么HTTP会生生不息地扩散?

GET参数

另一种使用GET风格式样的URL

处理窗体变量

PHP超数组

本章简单讲解一些有关在Web页面之间传递数据的内容。这样的一些信息不是PHP特有的,而是PHH/HTML或HTTP协议本身中很重要的部份。

HTTP是没有状态纪录的(stateless)

需要记住有关Web服务一项最重要的事情是,HTTP协议本身没有状态纪录的(stateless)。如果读者具有诗意的灵魂,可能就会说每个HTTP请求(request)孑然一身,没有家园,就像一个全然未知的……你知道这之类的说法。对缺乏诗意的我们,说白点就是指每个HTTP请求(每一次的请求和传送页面)独立于所有其它的内容、不知道客户端身份,而且也没有记忆。每个请求产生一件独立过程,完成一件档案服务、看似微小却重要的任务,然后自动消失(这样呼起来很无情,或许可以说成「回到可处理的状态中」)。

即使把网站设计成非常不严格的单向导航(页1引导到页2,页2引导到3等等),PTTP协助从来不知道也不关心某个人浏览的页2是否来自页1。因此,不可以把页1上的变量设定成透过HTML本身来导入该页。可以使用HTML显示窗体,用窗体输入一些信息,但是除非用一些别的方法把信息传送到另一页或另一个程序,否则一旦移到另一页,变量就消失了。

这是为什么导入像PHP这样的窗体处理技术的原因。PHP可以撷取从一页辗转传到另页的变量,能对它进行更进一步的动用。PHP函式正好非常擅长这种型态的数据传递函式,这样能更快、更容易地完成各种Web网站的任务。

HTML窗体是网站上用来由一个网页传递一些数据最有用的方法,有许多更持久的方式可以维护横跨许多网页的状态方法,例如cookie与session,我们会在第27章介绍这些功能。本章会着重在更基本的技术巧用来传递网页之间的信息,就是使用HTTP和GET与POST方法来进行动态产生网页以及处理数据。

ASP程序设计者看到这里可能要说「PHP真烂!」因为他们让为ASP的session变量是非常神奇的。这不是要截破谁的泡泡,而是微软正打算利用cookie来储存session变量,不过这样就打开了所有潜在问题的大门。

GET参数

GET方法把参数当成URI [Uniform Resource Indicator,一致资源指示器;也有人更习惯用URI (Uniform Resource Indicator,一致资源定位器)]查询字符串的一部份,从一个页面传递到另一个页面。当用于窗体处理时,GET用问号(?)当成分隔符号把变量名称和值附加给在ACTION属性中来反指定的URL,并把所有内容提交给提供处理的技术(在这个例子中是Web服务器)。

这是一个使用GET方法的HTML窗体范例(把档案存在team_select.html):

< HTML >

< HEAD >

< TITLE >A GET example, part 1< /TITLE >

< /HEAD >

< BODY >

< FOPM ACTION = http://localhost/baseball. php METHOD = “GET” >

< P >Root, root, root for the :< BR >

< SELECT NAME = “Team”SIZE=2 >

当使用者进行选择并按一下Submit按钮时,浏览器按照下面的顺序把这些元素接合、一起,中间不会有空格:

在单字ACTION后面,括在引号中的URL(http://localhost/baseball.php)

问号(?)指示以下字符即会组成GET字符串

NAME变量、等号、以及配合的VALUE(Team = Cubbies)

「&」符号和下一对「NAME = VALUE」(Submit = Submit);只要服务器查询字符串的长度限制允许,这些使用&区隔的name – value组合可以被重复许多次。

这样会构成这样一个URL字符串:

(http://locahost/baseball .php ? Team = Cubbies&Submit = Select)

其中字符串成为新的请求传送到浏览器的地址空间。上面的窗体提交后,处理窗体的PHP script(baseball.php)将从请求字符串的尾端取得GET变量,并对这些变量进行相对应的操作,在下面这个例子中,是把两个值中的一个插入文字字符串中。

以下程序代码是PHP用来处理原先HTML窗体的窗体处理部分:

< HTML >

< HEAD >

< TITLE >A GET example ,part 2< /TITLE >

< STYLE TYPE = “text/css”>

< !--

BODY {font-size: 24pt;}

-- >

< /STYLE >

< /HEAD >

< BODY >

< P >Go,

< ?php echo $_GET[‘Team’];? >

!

< /BODY >

< /HTML >

最后你应会看见网页上