收藏 分销(赏)

服务端语言.pptx

上传人:快乐****生活 文档编号:9849870 上传时间:2025-04-10 格式:PPTX 页数:63 大小:238.47KB
下载 相关 举报
服务端语言.pptx_第1页
第1页 / 共63页
服务端语言.pptx_第2页
第2页 / 共63页
点击查看更多>>
资源描述
2019/10/27,2012-3-1,曲阜师大计算机科学学院,曲阜师大计算机科学学院,01 03 04 05 06 6-1.php07 08 09 12 13,6.1 PHP,程序规范,6.1.1,第一个,PHP,程序,曲阜师大计算机科学学院,1,、利用分界符“,”,这是,PHP,最为普通的嵌入方式,也是,PHP,标准的嵌入方式,推荐使用此种嵌入方式,这种写法可以为程序在跨平台使用时减少不必要的麻烦!,2,、利用分界符“,”,这种方式是简写方式,必需在,php.ini,文件中将,shor_open_tag,设置为,On,(,PHP5,中默认设置为,On,),否则编译器将不予解析,6.1.2 PHP,代码的嵌入方式,(1),曲阜师大计算机科学学院,3,、利用分界符“,”,和“,”,这是类似于,JavaScript,和,VBScript,风格的嵌入方式,如:,echo(,这是类似,JavaScript,和,VBScript,风格的,PHP,语言嵌入范例,);,4,、利用分界符“,”,这是一种具有,ASP,风格的嵌入方式,必须在“,php.ini”,文件中设置,asp_tags,为,On,,否则编译器将不予解析。如:,强烈建议少用这种方式,因为,PHP,与,ASP,源代码混在一起时就有麻烦了!,6.1.2 PHP,代码的嵌入方式,(2),曲阜师大计算机科学学院,在,PHP,的程序中加入注释的方法很灵活。可以使用,C,语言、,C+,语言或,UNIX,的,Shell,语言的注释方式,也可以将它们混合使用。具体方法如下。,(,1,)“,/”,:这是从,C+,语法中借鉴来的,该符号只能注释一行。,(,2,)“,/*”,和“*,/”,:这是,C,语言的注释符,符号之间的字符都为注释。,(,3,)“,#”,:这是,UNIX,的,Shell,语言风格的注释符,也只能注释一行。,6.1.3 PHP,程序注释方法,曲阜师大计算机科学学院,引用文件的方法有两种:,require,方法和,include,方法。这两种方法除了处理失败的方式不同之外完全一样。当产生错误时,使用,include(),会产生一个警告而使用,require(),则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用,require(),,如果使用,include(),遇到丢失文件时,脚本会继续运行。,6.1.4,在,PHP,中引用文件,(1),曲阜师大计算机科学学院,require(MyRequireFile.php),、,require(MyRequireFile.php),、,require MyRequireFile.php,、,require MyRequireFile.php,都是正确的。,include(“MyIncludeFile.php”),、,include(MyRequireFile.php),、,include“MyRequireFile.php”,、,includeMyRequireFile.php,都是正确的。,另外,还有,include_once(),和,require_once(),也可以用来引用文件,它们的行为与,include(),和,require(),语句类似,惟一的区别是如果该文件中的代码已经被包含了,则不会再次包含。,程序,6-3.php,6.1.4,在,PHP,中引用文件,(2),曲阜师大计算机科学学院,6.1.5 PHP,的命名规则,一个良好的命名规则能让代码变得更加清晰流畅,不仅方便阅读,而且易于维护。变量名应尽量简单明了,易于记忆,做到见名知意。除非是一次性的临时变量,尽量不用单个字符命名变量。,PHP,变量名大小写敏感。类、实例、类常量应采用大小写混合的命名方法,即第一个单词的首字母小写,其后单词的首字母大写。语法上允许以,_,(下划线)和,$,(美元符合)开头,但实际应用中要尽量避免这种命名方法。,曲阜师大计算机科学学院,在,PHP,显示函数中使用,XHTML,代码可以使,PHP,输出更为美观的界面内容。例如,下面的代码:,程序,6-4.php,6.1.6,在,PHP,中输出,XHTML,曲阜师大计算机科学学院,PHP,代码中嵌入,JavaScript,能够与客户端建立起良好的用户交互界面,减轻服务器端的负担,强化,PHP,的功能,其应用十分广泛。,PHP,在服务器端的设置,可以通过客户端的,JavaScript,表现出来,提升用户体验。在使用时应注意,PHP,生成,JavaScript,脚本的语法,不要与,JavaScript,语法混合。,在,PHP,中生成,JavaScript,脚本的方法与输出,XHTML,的方法一样,也是使用显示函数。,程序,6-5.php,6.1.7,在,PHP,中使用,JavaScript,曲阜师大计算机科学学院,6.2 PHP,的数据类型(,1,),6.2.1,数据类型,分 类,类 型,类型名称,基本类型,boolean,布尔型,integer,整型,float,浮点型,也可以用“,double”,string,字符串型,复合类型,array,数组,object,对象,特殊类型,resource,资源,NULL,曲阜师大计算机科学学院,6.2.2,变量类型转换,(1),PHP,提供了两种类型转换的方法:自动类型转换和强制类型转换。,PHP,的自动类型转换的一个例子是加号“,+”,。如果任何一个运算数是浮点数,则所有的运算数都被当成浮点数,结果也是浮点数。否则运算数会被解释为整数,结果也是整数。注意这并没有改变这些运算数本身的类型;改变的仅是这些运算数如何被求值。,曲阜师大计算机科学学院,PHP,中的类型强制转换和,C,中的强制类型转换相似:在要转换的变量之前加上用括号括起来的目标类型。允许的强制转换如下。,(,int,)或(,integer,):转换成整型。,(,bool,)或(,boolean,):转换成布尔型。,(,float,)、(,double,)或(,real,):转换成浮点型。,(,string,):转换成字符串。,(,array,):转换成数组。,(,object,):转换成对象。,程序,6-6.php,6.2.2,变量类型转换,(2),曲阜师大计算机科学学院,6.3 PHP,中的变量,变量名要以“,$”,开头,且区分大小写;,变量不必要预先定义或声明;,变量在使用时编译器可动态进行类型指定和转换;,变量如果未赋值而直接使用,变量值将被视为空。,$num=12;,$my_name=”root”;,$_class=”09-2”;,$_1245=67.9;,$23ab=112;/,变量名不能以数字开头,$,班级,=”09-2”;/,变量名不能包含汉字,6.3.1,变量定义与赋值,曲阜师大计算机科学学院,PHP,中给变量赋值有两种方式,即传值赋值和引用赋值。传值赋值方式使用“,=”,直接将一个变量,(,或表达式,),的值赋给变量。这种方式,是通过在存储区域复制一个变量的副本来实现的,等号两端的变量值互不影响。引用赋值同样也用“,=”,将一个变量的值赋给另一个变量,但还要在等号右端的变量前面加上一个“,&”,符号。这种方式不是将一个变量的副本赋给变量,而是将一个变量的地址赋给了另一个变量,改变任何一个变量的值都将引起另一个变量相应的变化。,程序,6-7,演示了多种变量的使用。,曲阜师大计算机科学学院,6.3.2,变量的检测,(1),1,检测变量是否设置,为了保证代码在各种设置下都能够安全运行,最好在使用变量前判断是否定义了该变量。,PHP,中有两个能够完成此功能的函数:,isset(),和,empty(),。,isset(),函数。函数声明如下,bool isset(mixed var,mixed var,),如果,var,存在,则返回,TURE,,否则返回,FALSE,。若用,isset(),测试一个被设置成,NULL,的变量,返回值为,FALSE,。,empty(),函数。函数声明如下,bool empyt(mixed var),如果参数,var,是非空或非零的值,函数返回,FALSE,。即“”、,0,、“,0”,、,NULL,、,FALSE,、,array(),以及没有任何属性的对象都将被认为是空的,如果,var,为空,则返回,TRUE,。,程序,6-8.php,演示了这两个函数的使用。,曲阜师大计算机科学学院,6.3.2,变量的检测,(2),2,检测变量类型,PHP,变量是弱类型的,实际类型取决于所赋值的类型。由于程序运行中变量中存储的值可能经常变化,为保证程序运行的安全性,需要检测变量的类型。检测变量的类型有两类方法:用,var_dump(),函数和,is_xxx(),函数。,var_dump(),函数。函数声明如下,void var_dump(minxed expression,mixed expression,),其中,参数,expression,为变量名或表达式。,is_xxx(),。,程序,6-9.php,演示了检测变量类型函数的用法。,曲阜师大计算机科学学院,6.3.3,变量的作用域,根据作用域的不同,,PHP,中的变量可分为局部变量和全局变量。,1.,局部变量 局部变量只是局部有效,它的作用域分为两种:,在当前文件主程序中定义的变量,其作用域限于当前文件的主程序,不能在其他文件或当前文件的局部函数中起作用。如果通过,include(),或,require(),函数包含了其他文件,变量的作用域还可以扩展到这些文件里。,在局部函数或方法中定义的变量仅限于局部函数或方法,当前文件中主程序、其他函数、其他文件中无法引用。,2.,全局变量 全局变量可以在程序的任何地方被访问。通过使用全局变量,我们能够实现在函数内部引用函数外部的参数,或者在函数外部引用函数内部的参数。声明一个全局变量,只要在变量名前加上“,global”,关键字即可。,程序,6-10.php,为全局变量和局部变量使用示例。,曲阜师大计算机科学学院,3.,静态变量 静态变量其实是局部变量的特殊情况,不同之处在于静态变量能够在或所属函数执行完之后仍保留变量的值,当再次回到其作用域时可以继续使用原来的值。而一般变量在函数调用结束后,其值将被清除,所占内存空间也被释放。,静态变量只能用于函数范围内,静态变量的定义方法为在变量名前加“,static”,关键字。,程序,6-11.php,为静态变量示例。,曲阜师大计算机科学学院,6.3.4 PHP,的预定义变量,PHP,提供了一套附加的内置数组(也称为预定义数组或预定义变量),包含来自,Web,服务器(如果可用)、运行环境和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效。因此通常被称为自动全局变量(,autoglobals,)或者超全局变量(,superglobals,)。(,PHP,中没有用户自定义超全局变量的机制。)超全局变量主要有以下几个:,曲阜师大计算机科学学院,1,),$GLOBALS,(,Global,变量),包含引用指向每个当前脚本的全局范围内有效的变量,即为由所有已定义全局变量组成的数组。该数组的索引为全局变量的变量名。,2,),$_SERVER,(服务器变量),$_SERVER,是一个包含诸如头信息、路径和脚本位置的数组。数组的实体由,Web,服务器创建。不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,这与服务器的设定或者直接与当前脚本的执行环境相关联。,3,),$_GET,(,HTTP GET,变量),通过,HTTP GET,方法传递的变量组成的数组。,4,),$_POST,(,HTTP POST,变量),通过,HTTP POST,方法传递的变量组成的数组。,曲阜师大计算机科学学院,5,),$_COOKIE,(,HTTP Cookies,),通过,HTTP cookies,传递的变量组成的数组。,6,),$_FILES,(,HTTP,文件上传变量),通过,HTTP POST,方法传递的已上传文件项目组成的数组,,7,),$_ENV,(环境变量),从环境变量通过执行转变过来的,PHP,全局变量。它们中的许多都是由,PHP,所运行的系统决定。,8,),$_REQUEST,(,Request,变量),经由,GET,、,POST,和,COOKIE,机制提交至脚本的变量,关联数组包含,$_GET,、,$_POST,和,$_COOKIE,中的全部内容。该数组并不值得信任,建议尽量少用,甚至不用。所有包含在该数组中的变量的存在与否以及变量的顺序均按照,php.ini,中的,variables_order,配置指示来定义。,曲阜师大计算机科学学院,9,),$_SESSION,(,Session,变量),包含当前脚本中,Session,变量的数组。,10,),$php_errormsg,(前一个错误消息),$php_errormsg,是包含,PHP,产生的上一错误消息内容的变量。该变量在发生错误并且 将,track_errors,选项打开(默认为关闭)后才有效。,其中,$_GET,、,$_POST,、,$_SESSION,、,$_COOKIE,等预定义变量常用于,php,文件间的通信,以构建动态网页,这几个预定义变量的使用将在,6.7,节中详细介绍。下面的,程序,6-12.php,演示了用,$_SERVER,获取服务器信息的方法。,曲阜师大计算机科学学院,文件上传的功能是经常使用的,这要用到,$_FILE,数组。有了文件上传的功能,不仅可以为网站动态添加附件,以实现网页的文字编辑功能,而且还可以实现网站中相关图片、,Flash,动画等的动态更新等。,下面就通过,程序,6-13.php,来了解,$_FILE,数组的使用方法和文件上传的基本原理。,曲阜师大计算机科学学院,6.3.5,可变变量,可变变量是一种独特的变量,它允许动态地改变一个变量的名称。其工作原理是,该变量的名称由另外一个变量的值来确定。声明一个可变变量的方法是在该变量名前加两个“,$”,符号。,通过,程序,6-14.php,就很容易理解它的使用方法。,程序中,11,行,语句“,$var=world!;”,定义了一个可变变量,相当于“,$hello=world!”;”,,因有“,$var=hello;”,,将“,$var”,替换为“,hello”,,即用一个变量的值作为新变量的变量名。,曲阜师大计算机科学学院,6.4 PHP,中的常量,常量用于存储程序中不经常改变的数据信息。,PHP,的常量有两种:,(,1,)系统预定义常量;,(,2,)自定义常量。,曲阜师大计算机科学学院,6.4.1,预定义常量(,1,),PHP,为运行的脚本提供了大量的预定义常量,用于获取系统配置信息、网络请求等相关信息。,下面列举了一些常用的系统预定义常量:,1,),_FILE_,本默认常量是文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。,2,),_LINE_,本默认常量是文件中的当前行号。如果用在包含文件中,则返回在包含文件中的当前行号。,3,),PHP_VERSION,本内建常量为,PHP,程序的版本,如,5.2.5,。,曲阜师大计算机科学学院,4,),PHP_OS,本内建常量指执行,PHP,解析器的操作系统名称,如,Linux,。,5,),TRUE,本常量就是真值(,true,)。,6,),FALSE,本常量就是假值(,false,)。,7,),E_ERROR,本常量指到最近的错误处。,8,),E_WARNING,本常量指到最近的警告处。,9,),E_PARSE,本常量为解析语法有潜在问题处。,10,),E_NOTICE,11,),NULL,一个,NULL,值。,本常量为发生不寻常但不一定是错误处,例如存取一个不存在的变量。,程序,6-15.php,例子就是利用系统预定义常量输出一些系统参数。,曲阜师大计算机科学学院,6.4.2,自定义常量,(1),编写程序时仅使用以上的系统预定义常量是不够的,函数,define(),可以让用户自行定义所需要的常量,其定义的语法为:,bool define(string name,mixed value,bool case_insentive),其中,第一个参数为常量名,第二个参数为常量值,第三个参数指定参数名是否大小写敏感,设定为,TRUE,时表示不敏感。,曲阜师大计算机科学学院,6.4.2,自定义常量,(2),自定义常量在定义和使用时应注意以下几点:,(,1,)常量只能用,define(),函数定义,而不能通过赋值语句;,(,2,)常量前面没有美元符号(,$,);,(,3,)常量可以不用理会变量范围的规则而在任何地方定义和访问;,(,4,)常量一旦定义之后,就不能在其他地方不得再次定义同名的常量或变量;,(,5,)常量的值只能是标量(,boolean,、,integer,、,float,和,string,);,(,6,)常量是区分大小写的,建议尽量全部使用大写字符,便于阅读和识别;,(,7,)默认情况下,常量是全局的,即在当前教本的任何地方都可使用;,(,8,)要判断一个常量是否已经定义,使用,defined(),函数。,自定义常量的用法见,程序,6-16.php,。,曲阜师大计算机科学学院,6.5,运算符和表达式,(1),PHP,的运算符大部分是从,C,语言中借用而来的,分为以下几类:,算术运算符:,+,、,-,、*、,/,、,%,、,+,、,-,字符串运算符:,.,赋值运算符:,=,、,+=,、,-=,、*,=,、,/=,、,%=,、,.=,位运算符:,&,、,|,、,、,、,逻辑运算符:,&(And),、,|(Or),、,xor(Xor),、,!(Not),比较运算符:,、,=,、,=,、,=,、,!=,其他运算符:,$,、,&,、,、,-,、,=,、,?:,1.,算术运算符的例子,程序,6-17.php,曲阜师大计算机科学学院,6.5,运算符和表达式,(2),2.,字符串运算符,字符串运算符号只有一个,就是英文的句号“,.”,。它可以将字符串连接起来,变成合并的新字符串,也可以将字符串与数字连接,这时类型会自动转换,具体用法如,程序,6-18.php,所示。,曲阜师大计算机科学学院,符 号,意 义,符 号,意 义,$,用于定义变量,-,引用对象的方法或者属性,&,变量的地址,(,加在变量前引用变量,),=,用于给数组元素赋值,屏蔽错误信息,(,加在函数前,),?:,三目运算符,条件表达式,3.,赋值运算符,4.,位运算符,5.,逻辑运算符,6.,比较运算符,7.,其他运算符,6.5,运算符和表达式,(3),曲阜师大计算机科学学院,6.5.2,运算符的优先级与结合性,优先级,结合方向,运 算 符,附加信息,1,(最高),非结合,new,new,2,自左向右,array(),3,非结合,+-,自增,/,自减运算符,4,非结合,!-(int)(float)(string)(array)(object),类型,转换,5,自左向右,*,/%,算术运算符,6,自左向右,+-.,算术运算符,和,字符串运算符,7,自左向右,位运算符,8,非结合,=,比较运算符,9,非结合,=!=!=,比较运算符,10,自左向右,&,位运算符,和,引用,11,自左向右,位运算符,12,自左向右,|,位运算符,13,自左向右,&,逻辑运算符,14,自左向右,|,逻辑运算符,15,自左向右,?:,条件运算符,16,自右向左,=+=-=*=/=.=%=&=|=,赋值运算符,17,自左向右,and,逻辑运算符,18,自左向右,xor,逻辑运算符,19,自左向右,or,逻辑运算符,20,自左向右,多处用到,曲阜师大计算机科学学院,6.5.3,表达式,表达式就是由操作数、操作符以及括号等所组成的合法序列。简单地说,,PHP,中的常量或变量通过运算符连接后就形成了表达式,如“,$a=1”,为一个表达式。表达式也有值,如表达式“,$a=1”,的值就是,1,。,根据表达式中运算符类型的不同又可以把表达式分为:算术表达式、字符串连接表达式、赋值表达式、位运算表达式、逻辑表达式、比较表达式等。,比较表达式和逻辑表达式是常见的表达式,这种表达式的值只能是真或假,在程序的流程控制中,会大量使用这两种表达式。,曲阜师大计算机科学学院,6.6,流程控制语句,(1),几乎在所有的编程语言中,程序都由,3,种基本的结构组成,即顺序结构、分支结构和循环结构。,程序是由若干语句组成的,如果程序中语句的执行顺序是从上到下依次逐句执行的,那么这个程序的结构就是顺序结构,在这种结构中没有分支和反复,这也是最简单、最常见的流程结构,这里就不再过多地讨论。,PHP,中提供了,4,条流程控制语句来实现分支结构和循环结构。,ifelse,条件语句,switch,分支选择语句,dowhile,循环语句,for,循环语句,曲阜师大计算机科学学院,6.6,流程控制语句,(2),程序,6-19.php,为,ifelse,语句应用示例,程序,6-20.php,为,switch,语句示例,程序,6-21.php,演示了,while,循环的应用,程序,6-22.php,则演示了,dowhile,循环的应用,程序,6-23.php,演示了,for,循环的应用,程序,6-24.php,所示,break,和,continue,的用法,曲阜师大计算机科学学院,6.7 PHP,网页通信,网站是网页的集合,一个网站中会有众多的网页,PHP,文件,每个文件能够完成的功能有限。为了能够完成和客户的交互,需要多个,PHP,文件共同协作。因此,掌握,PHP,网页的通信技术,是非常重要的。在这一小节中,我们将介绍主要的网页间通信的方法,包括使用表单,使用,Cookie,,使用,Session,以及页面跳转等内容。,曲阜师大计算机科学学院,6.7.1,使用表单(,1,),表单是用户和程序间交互的重要工具,是采集和提交用户输入的主要地方。表单允许用户以标准格式向服务器提交数据,数据被传送给某个,PHP,文件并被进行相应处理。提交数据的方式有,Get,方法和,Post,方法两种。,POST,方法是在,HTTP,请求中嵌入表单数据;,GET,方法则将表单数据附加到请求该页的,URL,中。,曲阜师大计算机科学学院,6.7.1,使用表单(,2,),表单中可以包含很多的控件,如文本框、单选按钮、复选框、文件域、滚动文本框、按钮等。接收表单数据即指获取表单控件的,value,属性的值。不同的控件可以设置不同的,name,属性,在接收数据时根据,name,属性确定是哪个控件的值。不同的控件设置,value,属性的方式也不一样。例如,单选按钮可能由多个选项组成,这些选项的,name,属性值都相同时表示这些选项属于同一个表单控件,每个选项都有一个,value,值,接收控件的值后可以根据这个,value,值判断用户选择了哪个选项。,曲阜师大计算机科学学院,6.7.1,使用表单(,1,),又例如,复选框控件可以使用户选择多个选项,复选框中选项的,name,属性值都设置为相同,并且设置为数组的形式,如“,name=”testpaper“”,,而每个选项都有一个,value,值,接收数据时接收到的是一个数组,数组中保存了用户选择的选项,遍历数组的值就可以确定用户选择了哪些选项。,Post,方法提交数据,能够传送较大规模的数据量,并且,数据不是附加在地址栏中,对用户不可见,具有很好的数据安全性。,程序,6-25,演示了用,get,方法提交数据的情况。,程序,6-26,演示了用,post,方法传递数据的情况。,曲阜师大计算机科学学院,6.7.2,页面跳转,页面跳转是网站开发中经常遇到的问题,通过页面跳转,可以在相关,PHP,文件中传递数据,实现设计功能。本节介绍几种常用的页面跳转方法。,1,提交表单,2,使用,XHTML,标记,3,使用,header(),函数,4,使用按钮,5,使用客户端脚本,曲阜师大计算机科学学院,2,使用,XHTML,标记,使用,XHTML,的超链接标记,也能够实现跳转页面的功能,例如:,除了使用超链接标记,以外,另外一种方法是使用,标记,例如:,以上代码的作用是,3,秒之后跳转到,index.php,页面。,content,属性中数字,3,表示,3,秒之后跳转,设置为,0,则表示立即跳转,,url,选项可以指定要跳转到的页面。如果要刷新本页面,则可以省略,url,选项,代码如下:,曲阜师大计算机科学学院,3,使用,header(),函数,header(),函数的作用是向浏览器发送正确的,HTTP,报头,报头指定了网页内容的类型、页面的属性等信息。,header(),函数的功能很多,其中之一便是跳转页面。如果,header(),函数的参数为“,Location:xxx”,,页面就会自动跳转到“,xxx”,指向的,URL,地址。例如:,曲阜师大计算机科学学院,4,使用按钮,使用按钮跳转页面,只需要在按钮控件的,onclick,方法中设置执行的代码即可,例如:,?php,echo;,?,曲阜师大计算机科学学院,5,使用客户端脚本,在,PHP,中可以使用,JavaScript,跳转到页面,例如:,曲阜师大计算机科学学院,6.7.3,使用,Cookie,(,1,),当我们到图书馆借书时,我们要带上我们的身份证明,如一卡通或借书证。当我们登录某个网站时,也要携带一个身份证明,那就是,Cookie,。,Cookie,是保存在客户本地机器上的一小段有关客户信息的文本数据。不论我们访问哪个网站,都是通过浏览器来访问。浏览器访问网站的过程大致如下:,(1),当在浏览器地址栏里键入目标网站的,URL,时,就确定了需要访问的网站,如果连接成功,浏览器向,Web,服务器发送访问该网站的请求。,(2),如果,Web,服务器接受了请求,,Web,浏览器将对给定的网站在本机上查找现存的相关,Cookie,。,(3),如果找到了相关,Cookie,,浏览器就会以,HTTP,首部的形式将,Cookie,中的名称,-,数值对发送给服务器。,曲阜师大计算机科学学院,6.7.3,使用,Cookie,(,2,),例如:,GET HTTP/1.1,Accept:application/x-ms-application,image/jpeg,application/xaml+xml,.,User-Agent:Mozilla/4.0(compatible;MSIE 8.0;Windows NT 6.1;WOW64;.,Accept-Encoding:gzip,deflate,Connection:Keep-Alive,Host:,Cookie:datr=1265876274-.;locale=en_US;lsd=WW.;c_user=2101.,请求中包含了浏览器存储的该域名的,cookie,。,曲阜师大计算机科学学院,6.7.3,使用,Cookie,(,3,),(4),如果浏览器在本机上找不到相应的,Cookie,,就会通知服务器,Cookie,缺失,服务器将会为请求连接的客户产生新的,ID,,并将含有名称,-,数值对的,Cookie,发送到发出请求的,Web,浏览器上,浏览器接着就把这个,Cookie,存储在本机硬盘上。,从客户端发送的,Cookie,都会被,PHP 5,自动加入预定义变量,$_COOKIE,中,这是一个全局数性的数组变量。如果希望对一个,Cookie,变量设置多个值,则需在,cookie,的名称后加“,值名称,”,符号。,曲阜师大计算机科学学院,1 Cookie,的设置和读取(,1,),函数语法:,bool setcookie(string name,string value,int expire,string path,string domain,bool secure,bool httponly),函数说明:,setcookie(),定义一个和其余的,HTTP,标头一起发送的,cookie,。和其它标头一样,,cookie,必须在脚本的任何其它输出之前发送(这是协议限制)。这需要将本函数的调用放到任何输出之前,包括,和,标签以及任何空格。如果在调用,setcookie(),之前有任何输出,本函数将失败并返回,FALSE,。除了,name,外,其它所有参数都是可选的。可以用空字符串(,)替换某参数以跳过该参数。因为参数,expire,是整型,不能用空字符串跳过,可以用零(,0,)来代替。,曲阜师大计算机科学学院,1 Cookie,的设置和读取(,2,),name,:,Cookie,的名字;,value,:,Cookie,的值;,expire,:,Cookie,过期的时间,常用,time(),函数再加上秒数来设定;,path,:,Cookie,在服务器端的有效路径;设为,/,,在整个,domain,内有效;设为,/foo/,,在,domain,下的,/foo/,目录及其子目录内有效。默认值为设定,cookie,的当前目录。,domain,:,Cookie,的有效域名;,secure,:指明,cookie,是否仅通过安全的,HTTPS,连接传送。当设成,TRUE,时,,cookie,仅在安全的连接中被设置。默认值为,FALSE,。,曲阜师大计算机科学学院,1 Cookie,的设置和读取(,3,),例子,Cookie,被设置后,便可以在其他页面通过,$_COOKIE,预定义变量取得其值。因为,Cookie,不会在设置它的本页面生效,在其到期以前,需要通过另外的页面访问。,曲阜师大计算机科学学院,2 Cookie,的删除(,1,),用,setcookie(),函数设置,Cookie,的过期时间为过去的时间,值为空即可清除,Cookie,的内容。例如:,曲阜师大计算机科学学院,2 Cookie,的删除(,1,),删除,Cookie,的文件,d.php,如下:,注意当一个,Cookie,被删除时,它的值在当前页面仍然有效。,下面的程序用,Cookie,验证用户的登录信息。该实例包括两个程序,,6-27(1).php,是登录页面,通过这个页面提交数据;,6-27(2).php,接收,6-27(1).php,提交的数据并对提交的数据进行验证。,曲阜师大计算机科学学院,6.7.4,使用,Session,(,1,),6.7.3,小节介绍了,Cookie,,实现了在网站各网页文件间数据的共享。但,Cookie,还存在一些问题:,cookie,数据存放在客户的浏览器上,别人可以分析存放在本地的,Cookie,并进行,Cookie,欺骗;,Cookie,的容量有限,一个浏览器能创建的,Cookie,数最多为,30,个,每个不能超过,4K,,每个,Web,站点能设置的,Cookie,总数不能超过,20,个;为了安全起见,有的客户可以通过设置浏览器选项来禁用,Cookie,;还有些浏览器根本就不支持,Cookie,。其实,除了,Cookie,以外,还有另一种实现网站各网页文件间数据的共享的机制,就是,Session,。,曲阜师大计算机科学学院,6.7.4,使用,Session,(,2,),Session,直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,,Session,是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到,Web,中的,Session,指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,,Session,实际上是一个特定的时间概念。,需要注意的是,一个,Session,的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。,A,用户和,C,服务器建立连接时所处的,Session,同,B,用户和,C,服务器中建立连接时所处的,Sessions,是两个不同的,Session,。,曲阜师大计算机科学学院,6.7.4,使用,Session,(,3,),Session,成功的关键在于如何区分不同的客户端进程。在用户登陆或访问一些初始页面时,服务器会为客户端分配一个,SessionID,,这是一个加密的随机数字。服务器与客户端用这个,SessionID,来保持彼此间的联系。,Session,存储于服务器端(默认以文件方式存储),用户在连接服务器时,服务器首先检查这个客户端的请求里是否已包含了一个,SessionID,。如果已包含,则说明以前已经为此客户端创建过,Session,,服务器就按照,SessionID,把这个,Session,检索出来使用。如果检索不到,或者客户端请求不包含,SessionID,,则为此客户端创建一个,Session,并且生成一个与此,Session,相关联的唯一的,SessionID,,这个,SessionID,将被在本次响应中返回给客户端并以,Cookie,的方式保存。这样在交互过程中浏览器可以自动地按照规则把这个标识发送给服务器。,曲阜师大计算机科学学院,6.7.4,使用,Session,(,4,),用户提交页面时,会将这一,SessionID,提交到服务器端,来存取,Session,数,据。如果客户端的禁用了,Cookie,,,SessionID,会以,URL,的附加数据的方式,传送给服务器。,在,PHP,中实现,Session,的主要步骤包括:,启动,Session,,,注册,Session,变量,,使用,Session,变量,,注销,Session,变量,,销毁,Session,。,曲阜师大计算机科学学院,1,启动,Session,在,PHP,中有两种方法可以启动,Session,。,(,1,)使用,session_start(),函数,在其他任何代码之前先调用该函数。,语法格式如下:,bool session_start(void),该函数将检查是否有一个,SessionID,,如果没有就创建一个,并且使其能够使用预定义变量,$_SESSION,进行访问。如果,SessionID,已经存在,则将这个已经注册的,Session,变量载入以便使用。,(,2,)通过设置,php.ini,,自动创建。在,php.ini,文件中,将,session.auto_start,选项激活(设置“,session.auto_start=1”,)即可。但这种方法有一个缺陷,会导致无法使用对象作为变量。,曲阜师大计算机科学学院,2.,注册会话变量,启动,Session,后,,Session,变量会保存在预定义变量,$_SESSION,中,这是一个数组,可以以直接定义数组单元的方式来定义一个会话变量,格式如下:,$_SESSION,键名,=,值,;,Session,变量定义后被记录在服务器中,并对该变量的值进行跟踪,直到会话结束或手动注销该变量。,曲阜师大计算机科学学院,3.,访问会话变量,注册好,Session,变量后,就可以使用它了。首先要使用,session_start(),函,数启动一个会话。之后就可以使用,$_SESSION,数组访问该变量了。,例如:,曲阜师大计算机科学学院,4.,注销,Session,变量,Session,变量使用完后,删除已经注册的会话变量以减少对服务器资源的占用。删除会话变量使用,unset(),函数,语法格式如下:,void unset(mixed$var,mixed$var,$.),说明:,$var,是要销毁的变量,可以销毁一个或多个变量。例如:,要一次销毁所有的会话变量,可以使用以下语句:,session_unset();,曲阜师大计算机科学学院,5.,销毁,Session,使用完一个会话后,要注销所有的会话变量,然后再调用,session_destroy(),函数销毁会话,语法格式如下:,bool session_destroy(void),该函数将删除会话的所有数据并清除,SessionID,,关闭该会话。例如:,Session,最典型的应用当属实现购物车。下面的程序,6-28,以实现购
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服