网站建设PHP与Web页面交互.ppt

上传人:小飞机 文档编号:6194337 上传时间:2023-10-04 格式:PPT 页数:76 大小:1.25MB
返回 下载 相关 举报
网站建设PHP与Web页面交互.ppt_第1页
第1页 / 共76页
网站建设PHP与Web页面交互.ppt_第2页
第2页 / 共76页
网站建设PHP与Web页面交互.ppt_第3页
第3页 / 共76页
网站建设PHP与Web页面交互.ppt_第4页
第4页 / 共76页
网站建设PHP与Web页面交互.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《网站建设PHP与Web页面交互.ppt》由会员分享,可在线阅读,更多相关《网站建设PHP与Web页面交互.ppt(76页珍藏版)》请在三一办公上搜索。

1、08模块 PHP与Web页面交互,PHP与Web页面交互是学习PHP编程语言的基础,交互性也是动态网站区别于静态网站的一个重要特性。本模块将详细讲述表单及常用表单元素、表单数据的提交方式、表单参数值的获取方式、PHP中获取各种表单元素值、Cookie和Session等相关知识。,能力目标1能制作简单用户注册或登录表单2能编写PHP代码获取各种表单元素的值3能利用Session判断用户的访问权限知识目标1表单标签各项属性的意义2输入域和文本域等标签的属性和用法3表单提交方式POST和GET4$_POST、$_GET和$_SESSION三种获取参数值方式5Cookie的创建、读取、删除和生命周期6

2、Session的启动、注册、删除和使用,知识1 表单及常用表单元素,一个Web表单通常由表单标签和各种表单元素组成,下面分别介绍它们。(1)表单标签表单的HTML标签为,使用标签,并在其中插入相关的表单元素,即可创建一个表单。表单结构如下:/省略插入的表单元素,标签的属性如下所示。name:表单的名称,用户可以自己定义表单的名称,当然最好给表单一个有意义的名称。method:表单提交方式,通常为POST或者GET,二者的区别会在知识点2中详细讲述。action:指定处理该表单页面的URL,通常为具有数据处理能力的Web程序,如后缀为.php,.asp或者.jsp等的动态网页。,enctype:

3、设置表单内容的编码方式,主要有三种值。设置为text/plain会将空格转换为+加号,但不对特殊字符编码。设置为multipart/form-data将不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。设置为application/x-www-form-urlencoded会在发送前编码所有字符(默认)。target:设置返回信息的显示方式,主要有四种值。设置为_blank表示在新的窗口中显示;设置为_parent表示在父级窗口中显示;设置为_self表示在当前窗口中显示;设置为_top表示在顶级窗口中显示。,(2)表单元素一个表单(form)通常包含很多表单元素。常用的表单元素有以

4、下几种标签:输入域标签、选择域标签和、文本域标签等。下面分别介绍它们。输入域标签是表单中最常用的标签之一。常用的文本框、密码框、按钮、单选按钮和复选按钮等都是由标签表示的。语法格式如下:参数name是指输入域的名称,参数type是指输入域的类型。在标签中一共提供了10种类型的输入域,用户所选择使用的类型由type属性决定。type属性取值及举例如表8-1所示。,选择域标签和用来建立一个列表或者菜单。菜单可以节省空间,正常状态下只能看到一个选项,单击右侧的下三角按钮打开菜单才能看到全部的选项,菜单只能选择一项。列表可以显示一定数量的选项,如果超出了这个数量,会自动出现滚动条,浏览者可以通过拖到滚

5、动条来查看各选项。语法格式如下:选项1选项2选项3 参数name表示选择域的名称;参数size表示列表的行数;参数value表示菜单选项值;参数multiple表示以列表方式显示数据,省略则以菜单方式显示数据。选择域标签和的显示方式及举例如表8-2所示。,文本域标签用来制作多行文本框,可以在其中输入多行文本。语法格式如下:文本内容!参数name表示文本域的名称;rows表示文本域的行数;cols表示文本域的列数(rows和cols都以字符为单位);wrap用于设定文本的换行方式,值为off表示不自动换行。值为hard表示自动硬回车换行,换行标记一同被发送到服务器,输出时也会换行。值为soft表

6、示自动软件换行,换行标记不会被发送到服务器,输出时仍然为一列。文本域标签的值及举例如表8-3所示。,知识2 表单提交方式和参数值获取方式,1表单提交方式表单提交的方式有两种:POST和GET。采用哪种方式由表单的method属性指定。要用POST方式提交表单,只需要将表单的method属性设置为POST即可。POST方式可以没有限制地传递数据到服务器端,所有信息都是在后台传输的,用户在浏览器中看不到这一过程,安全性高。另外POST方式不会将信息附加在URL后,不会显示在地址栏。所以POST方式比较适合发送一些保密或容量较大的数据到服务器。,用户名:密 码:以上代码输出结果如下图8-1所示。,G

7、ET方式为表单提交的默认方式。使用GET方式提交表单数据时,数据被附加到URL后,并作为URL的一部分发送到服务器。因此,在浏览器地址栏中能够看到用户提交的信息,在地址栏中会显示“URL?用户传递的参数列表”。GET方式传递的参数格式如下:其中URL为表单响应的地址(如),para1为表单元素的名称,value1为表单元素的值。URL和第一个表单元素名之间用“?”隔开,而多对表单元素名及其值之间用“&”隔开,每对表单元素的格式都以“paran=valuen”形式固定不变。例如:,用户名:密 码:以上代码输出结果如下图8-2所示。,从图8-2可以看出,使用GET方式提交表单后,表单中的信息就显示

8、在浏览器地址栏中了。显然这种方式会将一些敏感信息暴露,比如信用卡号和密码等。另外在使用GET方式发送表单数据时,URL的长度应该限制在1M以内。如果发送的数据量太大,数据将被截断,从而导致意外或失败的处理结果。因此在传递小数据量和非敏感信息时可以使用GET方式提交表单,反之则应该使用POST方式提交表单。,2参数值获取方式PHP获取参数值的方式有三种:$_POST、$_GET和$_SESSION,分别用于获取表单、URL和Session变量的值。下面分别讲述这三种获取参数值的方式。(1)$_POST全局变量使用PHP的$_POST预定义变量可以获取表单元素的值,格式为:$_POSTelemen

9、t_name此时需要将表单的提交方式属性method设置为POST,例如要获取文本框user和密码框pass的值可以使用下面代码。,(2)$_GET全局变量使用PHP的$_GET预定义变量也可以获取表单元素的值,格式为:$_GETelement_name此时需要将表单的提交方式属性method设置为GET,例如要获取文本框user和密码框pass的值可以使用下面代码。,另外对于非表单提交过来的数据,比如直接通过超链接附加过来的数据也可以使用$_GET的方式获取。例如:超链接传递参数也就是说只要出现在浏览器地址栏中的参数都可以用$_GET的方式获取,不管这些数据是来自表单还是来自普通超链接。注意

10、:$_POST和$_GET全局变量都可以获取表单元素的值,但获取的表单元素名称是区分大小写的。,(3)$_SESSION变量使用$_SESSION变量可以获取表单元素的值,格式为:$_SESSIONelement_name例如要获取文本框user和密码框pass的值可以使用下面代码。使用$_SESSION变量获取的变量值,保存之后任何页面都可以使用。但这种方法很占用系统资源,建议慎重使用。关于$_SESSION变量的内容将在知识5中详细讲解。,知识3 在PHP中获取表单数据,获取表单元素提交的值是表单应用中最基本的操作方法。本知识点主要以POST方法提交表单为例讲述获取表单元素的值,GET方法

11、提交表单的数据获取同POST方法。1获取文本框、密码框、隐藏域、按钮和文本域的值获取表单数据,实际上就是获取不同表单元素的值。标签中的name属性表示表单元素的名称,value属性表示表单元素的值,在获取表单元素值时需要使用name属性来获取相应的value属性值。所以表单中添加的所有表单元素必须定义对应的name属性值,而且name属性值最好是具有一定意义的字符串,这个字符串可以由英文字母和数字组合。另外表单元素在命名上尽可能不要重复,以免获取的表单元素值出错。,在Web程序开发中,获取文本框、密码框、隐藏域、按钮以及文本域的值的方法是相同的,都是使用name属性来获取相应的value属性值

12、。下面仅以获取文本框中的值为例,讲解获取表单元素值的方法。读者可以举一反三,自行完成其他表单元素值的获取。例如,下面是一个只有文本框、密码框和提交按钮的表单,代码如下:,用户名:密?以上代码运行结果如图8-3所示。,2获取单选按钮的值radio(单选按钮)一般是成组出现的,具有相同的name值和不同的value值,在一组单选按钮中,同一时间只能有一个被选中。例如,下面是一个只有一组单选按钮和提交按钮的表单,代码如下:男女以上代码运行结果如图8-4所示。,3获取复选框的值复选框能够进行项目的多项选择。浏览者填写表单时,有时需要选择多个项目,例如,用户注册时为了获取用户的兴趣爱好信息,就可以使用复

13、选框。复选框一般都是多个同时存在的,为了便于传值,name的名字可以是一个数组的形式,格式为:在返回页面可以使用count()函数计算数组的大小,结合for循环语句即可输出选择的复选框的值。例如,下面是一个只有一组复选框和提交按钮的表单,代码如下:,兴趣爱好:上网看书玩游戏以上代码运行结果如图8-5所示。,4获取下拉菜单框和列表菜单框的值列表框有下拉菜单框和列表菜单框两种形式,其基本语法是一样的。在进行Web程序设计时,下拉菜单框和列表菜单框的应用非常广泛。下面分别讲述这两种表单元素值的获取。(1)下拉菜单框值的获取下拉菜单框值的获取非常简单,与获取文本框的值一样,首先需要定义下拉菜单框的na

14、me属性值,然后应用$_POST全局变量进行获取即可。例如,下面是一个只有下拉菜单框和提交按钮的表单,代码如下:,您的专业:计算机应用 网络工程 软件工程 计算机教育以上代码运行结果如图8-6所示。,(2)列表菜单框值的获取当标签设置了multiple属性,则为列表菜单框,可以选择多个菜单项。由于列表菜单框允许选择多个菜单项,为了便于传值,标签的命名通常采用数组形式,格式为:在返回页面可以使用count()函数计算数组的大小,结合for循环语句即可输出选择的菜单项的值。例如,下面是一个只有一个列表菜单框和提交按钮的表单,代码如下:,您喜欢的课程:网络编程 网页设计 java程序设计 c程序设计

15、以上代码运行结果如图8-7所示。,5获取文件域的值文件域的作用是实现文件的上传。文件域值的获取同获取文本框的值一样,首先需要定义下拉菜单框的name属性值,然后应用$_POST全局变量进行获取。例如,下面是一个只有文件域和提交按钮的表单,代码如下:照片:以上代码运行结果如图8-8所示。,知识4 Cookie管理,Cookie是在HTTP协议下,服务器或脚本维护客户机上信息的一种方式。有效地使用Cookie可以完成很多任务,许多提供个人化服务的网站都是利用Cookie来区别不同用户的。下面就详细讲述Cookie的相关知识。1了解CookieCookie的中文意思是甜饼。Cookie其实就是一小段

16、信息,它可以由脚本在客户端机器上保存。从本质上讲,它是客户的身份证。它不能作为代码执行,也不会传递病毒。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookie文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速作出响应,如再次访问相同网站时不需要输入用户名和密码即可登录等。,Web服务器可以利用Cookie来保存和维护很多与网站有关的信息。Cookie常用于3个方面:(1)记录访客的某些信息。如可以利用Cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息,

17、另外,某些网站可以使用Cookie自动记录访客上次登陆的用户名和密码等信息。(2)在网页直接传递变量。浏览器并不会保存当前页面上的任何信息,当页面被关闭时页面上的所有变量信息将随之消失。而通过Cookie可以把需要在页面间传递的变量先保存起来,然后到另一个页面再读取即可。(3)将所存储的Internet页存储在Cookie临时文件夹中,可以提高以后浏览的速度。,2创建Cookie在PHP中通过setcookie()函数创建Cookie。在创建Cookie之前必须了解的是,Cookie是HTTP头标的组成部分,而头标必须在页面其他内容之前发送,它必须最先输出。这需要将函数的调用放到任何输出之前,

18、包括和标签以及任何空格。如果在调用setcookie()函数之前有任何输出,本函数将失败并返回False,如果setcookie()函数成功运行,将返回True。setcookie()函数的语法格式如下:bool setcookie(string$name,string$value,int$expire=0,string$path,string$domain,bool$secure=false)setcookie()函数的参数说明如表8-4所示。,例如:运行本实例,在Cookie文件夹下会自动生成3个有效期不同的Cookie文件,在Cookie失效后,Cookie文件会自动删除。注意:当用户操

19、作系统为Windows 2000/xp/2003,系统盘为C盘时,Cookie文件默认存放的目录为“C:Documents and SettingsAdministratorCookies”。,3读取Cookie在PHP中可以直接通过超级全局数组$_COOKIE来读取浏览器端的Cookie值。例如:;/另一个调试的方法就是输出所有的 Cookieprint_r($_COOKIE);?以上代码输出结果如下图8-9所示。,4删除Cookie当Cookie被创建后,如果没有设置它的失效时间,其Cookie文件会在关闭浏览器时自动删除。如果要在关闭浏览器之前删除Cookie文件,方法有两种:一种是使用

20、setcookie()函数删除,另一种是在浏览器中手动删除Cookie。下面分别进行介绍。,(1)使用setcookie()函数删除Cookie删除Cookie和创建Cookie的方式基本类似,也使用setcookie()函数。删除Cookie只需要将setcookie()函数中的第二个参数设置为空值,将第三个参数Cookie的过期时间设置为小于系统的当前时间即可。例如,将Cookie的过期时间设置为当前时间减1秒,代码如下:setcookie(cookie_name,time()-1);在上面的代码中,time()函数返回以秒表示的当前时间戳,把过期时间减1秒就会得到过期的时间,从而删除Co

21、okie。当然,如果把过期时间设置为0也可以删除Cookie。,(2)在浏览器中手动删除Cookie在使用Cookie时,Cookie自动生成一个文本文件存储在IE浏览器的Cookies临时文件夹中。在浏览器中删除Cookie文件是非常快捷的。具体操作步骤如下:启动IE浏览器,选择“工具”/“Internet选项”命令,打开“Internet选项”对话框。在“常规”选项卡中单击“删除Cookies”按钮,将弹出“删除Cookie”对话框,单击“确定”按钮,即可成功删除全部Cookie文件。,5Cookie的生命周期如果Cookie不设定过期时间,就表示它的生命周期为浏览器会话的时间,只要关闭I

22、E浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,会话Cookie是保存到内存中的,一般不保存到硬盘中。如果设置了过期时间,那么浏览器会把Cookie保存到硬盘中,再次打开IE浏览器时会继续有效,直到Cookie过期之后系统才会自动删除Cookie文件。虽然Cookie可以长期保存在客户端浏览器中,但也不是一成不变的。因为浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持最大容量为4KB。每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动随机地删除Cookie文件。,知识5 Session管理,前面提到的Cookie虽然可以在客户端

23、保存一定数量的会话状态,但是事实上全部采用Cookie来解决会话控制是不现实的,因为Cookie本身的容量有限。因此这里提供另外一种解决方案,那就是只在客户端保存一个会话标志符,然后将会话数据都存储在服务器上或者数据库中。这种解决方案就是Session,下面就详细讲述Session的相关知识。,1了解Session(1)什么是SessionSession译为“会话”,其本义是指有始有终的一系列动作/消息。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到Web中的Session指的就是用户在浏览某个网站时,

24、从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此Session实际上是一个特定的时间概念,Session默认的生命周期为20分钟。,(2)为什么要使用Session浏览器和服务器采用HTTP协议进行通信,HTTP协议是无状态的。用户从浏览器向服务器发出的每个请求都独立于它前面的请求。服务器无法知道两个连续的请求是否来自同一个用户,它所能做的就是返回当前请求的页面。为了在服务器保持客户端的状态,就需要使用Session。,(3)Session的工作原理Session的工作原理比较简单,当客户端访问服务器时,服务器根据需要设置Session,将会话信息保存在服务器上

25、,同时将唯一标识Session的session_id传递到客户端浏览器。浏览器将这个session_id保存在内存中,这个session_id相当于无过期时间的Cookie。浏览器关闭后,这个Cookie就清掉了,它不会被存储在用户的Cookie临时文件中。以后浏览器每次请求都会额外加上这个session_id,在服务器根据这个session_id,就能取得客户端的数据状态。如果客户端浏览器意外关闭,服务器保存的Session数据不是立即释放,此时数据还会存在,只要我们知道那个session_id,就可以继续通过请求获得此Session的信息。但是Session的保存有一个过期时间,一旦超过规

26、定时间没有客户端请求时,服务器就会清除这个Session。,2创建和管理会话创建一个会话主要包括启动会话、注册会话、使用会话和删除会话等步骤,下面分别介绍这些步骤。(1)启动会话启动会话的方式有两种:一种是使用session_start()函数,另一种是使用session_register()函数为会话登录一个变量来隐含地启动会话。session_start()函数创建会话的语法格式如下:bool session_start(void);使用session_start()函数之前浏览器不能有任何输出(包括和标签以及任何空格),否则会产生错误,因此应该把调用session_start()函数放在

27、网页代码的顶端。session_register()函数用来为会话登录一个变量来隐含地启动会话,使用session_register()函数时,不需要调用session_start()函数,PHP会在注册变量之后隐含地调用session_start()函数。,(2)注册会话会话变量被启动后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。例如,启动会话,创建一个Session变量并赋值,代码如下:,(3)使用会话使用会话变量很简单,首先需要判断会话变量是否存在,如果不存在就创建它;如果存在就可以用数组$_SESSION访问

28、该会话变量。例如:,(4)删除会话删除会话主要有删除单个会话、删除多个会话和结束当前会话3种。删除单个会话变量同删除数组元素一样,直接注销$_SESSION数组的某个元素即可。代码如下:unset($_SESSIONuser);在使用unset()函数时,要注意$_SESSION数组中某元素不能省略,即不可一次注销整个数组。这样会禁止整个会话的功能,如unset($_SESSION)函数会将全局变量$_SESSION销毁,而且没有办法恢复,用户也不能再注册$_SESSION变量了。如果要删除多个或者全部会话,可以采用下面的两种方法。,如果想要一次注销所有的会话变量,可以将一个空的数组赋值给$_

29、SESSION,代码如下:$_SESSION=array();如果整个会话已经基本结束了,首先应该注意销毁所有的会话变量,然后再使用session_destroy()函数清除并结束当前会话,并清空会话中的所以资源,彻底销毁Session,代码如下:session_destroy();,3会话应用实例(1)会话控制的简单应用这里制作了两个简单的PHP页面session1.php和session2.php来演示Session的应用,session1.php的代码如下:;$_SESSIONuser=James;/设置Session$_SESSIONadmin=John;/设置Session$_SES

30、SIONtime=time();/设置Sessionecho 第2页;?,Session2.php的代码如下:;echo$_SESSIONuser.;/输出Sessionecho$_SESSIONadmin.;/输出Sessionecho date(Y m d H:i:s,$_SESSIONtime);?session1.php运行结果如图8-10所示,点击图8-10中的“第2页”超链接打开session2.php,运行结果如图8-11所示。,(2)身份验证身份验证是会话的一个重要功能。一旦用户登录成功后,就会通过会话id一直跟踪用户,并不需要用户在每个页面输入身份验证信息。但是如果用户登录失

31、败,却要尝试登录网站的其他页面,则会提示没有登录,要求重新登录。关于身份验证的应用,将在实训中详细讲解。(3)购物车购物车也是会话的一个重要功能。通常人们在进行购物的时候,总是选购多样物品,然后一次性支付。在挑选的时候,总是需要将商品临时存放在一个购物篮中,用户可以方便地添加或者删除商品。而这个购物车的实现,就是通过会话来进行的。,模拟制作任务:制作一个注册表单,实训 利用Session判断用户的访问权限,网站有些网页可能不想让没有权限的用户访问,例如后台管理页面。这时可以利用Session判断用户的操作权限,来阻止没有权限的用户访问后台管理页面。具体可以通过会话(Session)变量来判断用

32、户对网页的访问权限。通常的做法是在用户登录时将用户的用户名和角色等信息存储为会话变量(如$_SESSIONuser和$_SESSIONrole等)中,当用户访问其他非授权网页时先检查该会话变量是否存在,如果存在就可以访问,否则就提示用户登录并跳转到登录页面。,从图8-14至8-16运行结果可以看出,当用户未登录之前会提示“您还未登录,请登录”(如图8-14)。当用户正确登录后会提示相应的欢迎信息(如图8-16),登录后还可以单击“注销”超链接注销用户登录。注销功能其实就是销毁相关的会话(Session)变量并清空所有的会话。而在其他需要进行操作权限验证的网页,只需要在网页头部添加如下几条代码即可。alert(您还未登录,请先登录!);=login.php;?,本实训主要目的是让学生掌握利用会话(Session)变量实现对网页进行访问控制,同时熟悉会话变量的添加和清除等操作。让学生能综合运用本章所学的知识制作一个简单的控制用户访问权限的功能模块。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号