版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章Web程序设计Web互动与会话控制技术新工科建设之路·计算机类专业系列教材01Web服务器交互原理01Web服务器交互原理Web服务器交互一般可分成4个步骤:连接过程、请求过程、应答过程和关闭连接。连接过程就是在Web服务器和Web浏览器之间建立起来的一种连接。查看连接过程是否实现,用户可以找到并打开Socket虛拟文件,这个文件的建立意味着连接过程已经成功建立。请求过程就是Web浏览器运用Socket文件向服务器提出请求。应答过程就是运用HTTP把在请求过程中提出来的请求传输到Web服务器,进而实施任务处理,然后运用HTTP把任务处理的结果传输到Web浏览器,同时在Web浏览器上展示请求的界面。关闭连接就是当应答过程完成以后,Web服务器和Web浏览器之间断开连接的过程。02页面间的参数传递方式02页面间的参数传递方式实现网页间参数的传递有以下方法。①利用form表单的隐藏域hidden,在表单数据提交时传递参数,需要与form表单一起使用。②利用超链接,通过URL查询字符串传递参数。URL传递参数采用的是GET方法,其传递的参数值可以通过$_GET[]获取。③用header()函数或JavaScript重定向功能,通过URL查询字符串传递参数。④用Cookie将浏览器用户的个人资料存储在浏览器端的主机中,其他PHP程序通过读取浏览器端主机中的Cookie信息实现页面间的参数传递。⑤用Session将浏览器用户的个人资料存储在Web服务器中,其他PHP程序通过读取服务器端主机中的Session信息实现页面间的参数传递。03浏览器端数据提交方式03浏览器端数据提交方式01GET提交方式GET提交方式的本质是将数据通过URL地址的形式传递到下一个页面,提交的表单不会明显地改变页面状态。GET提交方式是最简单的提交方法,主要用于静态HTML文档、图像或数据库查询结果的简单检索。GET提交方式是将“请求”数据以查询字符串(QueryString)的格式附在URL后“提交”数据。03浏览器端数据提交方式02POST提交方式与GET提交方式相比,POST提交方式具有很多优势。由于POST提交方式通过头信息传递数据,所以它在长度上是不受限制的,同时它不会把传递的数据暴露在浏览器的地址栏中。在通常情况下,POST提交方式被用来提交一些相对敏感或数据量较大的信息。POST提交方式一般通过form表单实现,由于在默认情况下form表单的数据提交方式为GET提交方式,必须在form表单的<form>标签中加入属性method="post",将数据提交方式修改为POST提交方式。03浏览器端数据提交方式03两种提交方式的比较POST提交方式比GET提交方式安全。这是由于使用GET提交方式提交的数据将出现在URL查询字符串中,并且这些带有查询字符串的URL可以被浏览器缓存到历史记录中。因此,诸如用户注册、登录等,不建议使用GET提交方式。使用POST提交方式可以提交更多的数据。理论上讲,使用POST提交方式提交的数据没有大小限制;使用GET提交方式提交的数据由于出现在URL查询字符串中,而URL的长度是受限制的(如IE浏览器对URL长度的限制是2083字节)。例如,新闻发布系统中提交篇幅较长的新闻信息时,不建议使用GET提交方式;带有文件上传功能的form表单则必须使用POST提交方式。不同的提交方式对应的服务器端数据采集方式不同。03浏览器端数据提交方式04PHP获取表单信息PHP脚本通常使用$_POST[]、$_GET[]获取表单信息。在大多数情况下,表单以POST提交方式提交。1获取文本框的值通过name属性获取相应的value属性值。获取文件域的值文件域用于实现文件或图片的上传。文件域有一个特有的属性:accept,用于指定上传的文件类型,如果需要限制上传文件的类型,就可以通过设置该属性完成。203浏览器端数据提交方式04PHP获取表单信息3获取复选框的值复选框一般有多个选项同时存在,为了传递值,name可以是一个数组形式。获取下拉列表的值首先需要定义下拉列表的name属性值,然后应用$__POST[]全局变量获取该属性值。45获取单选按钮(radio)的值单选按钮一般是成组出现的,具有相同的name值和不同的value值,在一组单选按钮中同一时间只能选中一个。03浏览器端数据提交方式05URL操作URL传递参数采用的是GET提交方式,其传递的参数值可以通过$_GET[]获取。PHP处理用户提交信息的过程与函数的使用类似,若将脚本login.php看作一个函数,则URL参数相当于传递给函数的参数,脚本执行后返回给浏览器的结果相当于函数的返回值。用户可通过传递不同的URL参数获得不同的访问结果,这就是URL参数的交互。1.获取URL传递的参数使用urlencode()函数可以把字符串中除“-”“_”符号与字母以外的字符转换为十六进制数的形式,空格转换为“+”符号。2.URL的编码与解码04在PHP脚本中使用JavaScript编程04在PHP脚本中使用JavaScript编程01JavaScript脚本的使用在PHP脚本中使用JavaScript脚本时,JavaScript代码需要在<scriptLanguage="JavaScript">和</script>中使用。
document是JavaScript的文档对象,document.write()函数用于在文档中输出字符串,document.close()函数用于关闭输出操作。在JavaScript中,使用//表示程序中的注释,服务器在解释程序时,将不考虑一行程序中字符“//”后的代码。注意04在PHP脚本中使用JavaScript编程02数据类型和变量JavaScript包含4种基本的数据类型,如表6-1所示。05
Cookie技术05Cookie技术01了解Cookie1.什么是CookieCookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,随后会被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookie文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速做出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。05Cookie技术01了解Cookie2.Cookie的功能Cookie常用于以下3方面。①记录访客的某些信息,如可以利用Cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息。另外,某些网站可以使用Cookie自动记录访客上次登录的用户名。②在页面之间传递变量。浏览器并不会存储当前页面上的任何变量信息,当页面被关闭时,页面上的任何变量信息将随之消失。如果用户声明一个变量id=8,并把这个变量传递到另一个页面,可以把变量id以Cookie形式存储,然后在下一页通过读取该Cookie来获取变量的值。③将查看的Internet页面存储在Cookies临时文件夹中,以提高以后浏览的速度。05Cookie技术02创建Cookie在PHP中,通过setcookie()函数创建Cookie。在创建Cookie前必须了解的是,Cookie是HTTP头标的组成部分,头标必须在页面其他内容前发送,必须先输出,即使在setcookie()函数前输出HTML标记或echo语句甚至一个空行都会导致程序出错,其语法格式如下:05Cookie技术03读取Cookie与表单数据存储在数组$_POST[]或s_GET[]中类似,setcookie()函数生成的Cookie数据存储在超级全局数组$_COOKIE[]中,PHP脚本可以通过$_COOKIBE[]来获取Cookie数据,具体语法格式如下:其中,$value表示一个变量,存储从Cookie中获取的数据;name是一个字符串,表示Cookie信息的name值。下面演示$_COOKIE[]的用法。05Cookie技术04删除Cookie1使用setcookie()函数删除Cookie删除Cookie和创建Cookie的方式基本类似,删除Cookie也使用setcookie()函数。删除Cookie只需要将setcookie()函数中的第二个参数设置为空值,将第三个参数即Cookie的过期时间设置为小于系统的当前时间即可。使用浏览器手动删除Cookie;在使用Cookie时,Cookie自动生成一个文本文件存储在浏览器的Cookies临时文件夹中。使用浏览器删除Cookie文件是非常便捷的方法:选择浏览器的“工具”/“Internet选项”命令,打开“Internet选项”对话框,在“常规”选项卡中单击“删除Cookies”按钮,弹出“删除Cookies”对话框,单击“确定”按钮,即可成功删除全部Cookie文件。206
Session技术06Session技术01了解Session1.什么是SessionSession被译为中文为“会话”,本义是指有始有终的一系列动作/消息,如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称为一个Session。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常是指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特定的时间概念。06Session技术01了解Session2.Session工作原理当启动一个Session会话时,会有一个随机且唯一的Session_id,也就是由Session的文件名生成的,这时Session_id存储在服务器的内存中。当我们关闭页面时,此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的id。06Session技术01了解Session3.Session的功能Session在Web技术中占有非常重要的分量。由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态,必须通过Session记录用户的有关信息,以供用户再次以此身份对Web服务器提出要求时进行确认。另外,Session会话适合存储用户信息量比较少的情况。如果用户需要存储的信息量相对较少,并且内容不需要长期存储,就使用Session把信息存储到服务器端比较适合。06Session技术02创建Session1启动Session启动PHPSession的方式有两种:一种是使用session_start()函数,另一种是使用session_register()函数为Session登录一个变量来隐含地启动Session。注册SessionSession变量被启动后,全部存储在数组$_SESSION中。通过数组$_SESSION创建一个Session变量很容易,直接给该数组添加一个元素即可。由于Session中的数据都存储在超全局数组$_SESSION[]中,因此从Session中读取数据就要操作超全局数组$_SESSION[]。.206Session技术02创建Session3使用Session首先判断Session变量是否存在Session_id,
如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问;如果已经存在,将这个已注册的Session变量载入,以供用户使用。删除Session删除Session的方法主要有3种:删除单个Session,删除多个Session,结束当前的Session。406Session技术03使用Session设置时间1.客户端没有禁止Cookie2.客户端禁用Cookie解决客户端禁用Cookie的问题有以下几种方法。①在登录前告知用户必须打开Cookie。②设置php.ini文件中的session.use_trans_sid=1,或者在编译时打开了enable-trans-sid选项,让PHP自动跨页面传递session_id.③通过使用GET方式隐藏表单传递session_id.④使用文件或数据库存储session_id,
在页面间传递时手动调用。07
Session高级应用07Session高级应用01Session临时文件在服务器中,如果将所有用户的Session都存储到临时目录中,会降低服务器的安全性和效率,导致打开服务器所在的站点非常慢。[例6-25]用PHP函数session_save_path()存储session临时文件,缓解因临时文件的存储导致服务器效率降低和站点打开缓慢的问题,实例如下。07Session高级应用02Session缓存Session缓存完成使用的是session_cache_limiter()函数,其语法格式如下:其中,参数cache_limiter为public或private。同时,Session缓存并不是指在服务器端缓存而是在客户端缓存,在服务器中没有显示。设置缓存时间使用的是session_cache_expiry()函数,其语法格式如下;其中,参数cache_expire是Session缓存的时间,单位是分钟。07Session高级应用03Session综合应用案例用户登录是大部分Web应用必备的功能,一般由以下步骤组成:当用户进入站点首页时,若未登录,则页面会提示用户完成登录并提供跳转到登录页面的超链接;当用户登录时,若用户名和密码都正确,则登录成功,否则登录失败并自动跳转到登录页面。登录成功后,还可以单击“退出”超链接退出登录。在通常情况下,用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园食堂防蝇工作制度
- 基于移动智能终端接入的政府网站服务智能创新分析研究 计算机科学与技术专业
- 《暗夜中的灯塔》阅读答案-《沉默的荣耀》
- 2026年美国化学考试 试卷及答案
- 正电子技术解析碳同素异构体微观结构:理论、应用与展望
- 正向赋能:正面在线评论对服装消费者购买意愿的深度实证探究
- 止痢草油:运输应激下肠道氧化损伤的天然守护者与作用机制探秘
- 欧盟技术性贸易壁垒下中国纺织品服装出口的挑战与应对
- 欧姆接触优化策略及其对AlGaN-GaN高电子迁移率晶体管性能影响的深度剖析
- 春节后复工复产考试试题及答案
- 跨期入账整改报告
- 适老化工程改造合同范本
- 离婚协议书电子版下载
- 社会调查方法练习题与答案
- 张培基散文佳作108篇详解
- 2023年初中体育与健康学科优质课评选活动方案(预)
- GB/T 9341-2008塑料弯曲性能的测定
- GB/T 8854-1988蔬菜名称㈠
- 桥墩与横系梁同步施工工法
- 新能源公司组织架构及部门职责(修改稿)
- 更年期的中医调理培训课件
评论
0/150
提交评论