PHP编程基础与实例教程课件6.ppt

上传人:本田雅阁 文档编号:2039239 上传时间:2019-02-07 格式:PPT 页数:30 大小:1.41MB
返回 下载 相关 举报
PHP编程基础与实例教程课件6.ppt_第1页
第1页 / 共30页
PHP编程基础与实例教程课件6.ppt_第2页
第2页 / 共30页
PHP编程基础与实例教程课件6.ppt_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PHP编程基础与实例教程课件6.ppt》由会员分享,可在线阅读,更多相关《PHP编程基础与实例教程课件6.ppt(30页珍藏版)》请在三一文库上搜索。

1、PHP编程基础与实例教程 PHP Fundamentals & Practices,第 6 章 PHP的数据采集,主讲:孔祥盛,本章大纲,6-1 浏览器端数据的提交方式 6-2 相对路径和绝对路径 6-3 使用FORM表单实现浏览器端的数据采集 6-4 使用$_GET和$_POST“采集”表单数据 6-5 上传文件的“数据采集” 6-6 WEB服务器端其它数据采集方法,6-1 浏览器端数据的提交方式,1. GET提交方式 GET提交方式是将“请求”数据以查询字符串(Query String)格式附在URL之后“提交”数据。例如: http:/localhost/2/register.php?u

2、serName=victor&password=1234&confirmPassword=1234。 在这个URL中,问号“?” 表示查询字符串的开始,问号“?”后面的字符串参数“userName=victor&password=1234&confirmPassword=1234”为查询字符串。可以看出:查询字符串可以包含多个参数,每个参数以“参数名=参数值”的格式定义,参数之间使用“&”相连,最后再将查询字符串使用“?”附在URL之后。 另外,FORM表单也提供了GET提交方式。 除此以外,使用超链接标签也可以实现浏览器端GET提交方式。,6-1 浏览器端数据的提交方式,2. POST提交方

3、式 POST数据提交方式一般通过FORM表单实现,由于默认情况下FORM表单的数据提交方式为GET方式,必须在FORM表单的标签中加入属性:method=“post“,将数据提交方式修改为POST方式。,6-1 浏览器端数据的提交方式,3. GET和POST混合提交方式 还可以使用FORM表单实现GET和POST混合提交方式,即向WEB服务器某PHP程序发出“GET请求”的同时,还向该PHP程序发出“POST请求”。,6-1 浏览器端数据的提交方式,4. 两种提交方式的比较 POST提交方式比GET提交方式安全。这是由于GET提交方式提交的数据将出现在URL查询字符串中,并且这些带有查询字符串

4、的URL可以被浏览器缓存到历史记录中。因此诸如用户注册、登录等系统,不建议使用GET提交方式。 POST提交方式可以提交更多的数据。理论上讲POST提交方式提交的数据没有大小限制,而GET提交方式提交的数据由于出现在URL查询字符串中,而URL的长度是受限制的(例如IE浏览器对URL长度的限制是2083字节)。例如:新闻发布系统中提交篇幅较长的新闻信息时,不建议使用GET提交方式;带有文件上传功能的FORM表单则必须使用POST提交方式。 不同的“提交”方式对应的服务器端数据“采集”方式不同。,6-2 相对路径和绝对路径,1. 绝对路径 绝对路径是与相对路径相对立的,通常是一个完整的URL,该

5、URL由两个部分构成: scheme:用来描述寻找数据所采用的机制,即:协议。如http协议和ftp协议等 位置(Location):用来描述到哪儿去寻找数据的资源 这两部分使用“:/”分隔,例如:http:/ 由于绝对路径无论出现在哪儿都代表相同的内容,因此绝对路径通常在访问系统外部资源时才使用,而访问系统内部资源时一般使用相对路径,方便程序的移植。,6-2 相对路径和绝对路径,2. 相对路径 相对路径可以分为两类:server-relative路径与page-relative路径。 server-relative路径是以斜杠“/”开头的相对路径。在HTML中,以斜杠“/”开头的相对路径表示

6、从WEB服务器的根目录下开始查找相应的资源文件。使用默认配置安装WAMP后,目录“C:/wamp/www”为Apache服务器的根目录,因此使用相对路径“/index.php”访问资源时,访问的是目录“C:/wamp/www”下的index.php页面;使用相对路径“/6/register.html”访问资源时,访问的是目录“C:/wamp/www”中的目录“6”下的register.html文件。,6-2 相对路径和绝对路径,2. 相对路径 page-relative路径不以斜杠开头。此时当文件1访问文件2(HTML页面、PHP程序或图片等)资源时,将从文件1的当前目录作为起点查找文件2资源

7、。例如当目录“C:/wamp/www/6/”中的register.html文件使用超链接访问该目录下的register.php文件时,只需在register.html文件的超链接中直接指定register.php文件即可,6-2 相对路径和绝对路径,3. 相对路径其它概念 1同一个目录下的资源访问 如果文件1和文件2在同一个目录,这两个文件间的相互访问直接使用文件名即可。 2如何表示当前目录 .表示文件的当前目录。 3如何表示上级目录 /表示文件所在目录的上一级目录,/表示文件所在目录的上上级目录,以此类推。 4如何表示下级目录 如果文件1访问下级目录中的文件2,直接指定该目录和文件2的文件名

8、即可。,6-3 使用FORM表单实现浏览器端的数据采集,0. 预备 FORM表单由三部分组成: 表单标签:定义了表单处理程序及数据提交方式等信息。 表单控件:包括单行文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等表单控件。 表单按钮:包括提交按钮、复位按钮和一般按钮。,6-3 使用FORM表单实现浏览器端的数据采集,1. 表单标签 表单标签常用的属性有action、method、enctype、title、name等。 1action属性设置当前表单数据“提交”的目的地址。当不设置action属性,或设置值等于空字符串(即action=“)时,表单数据提交给当前页

9、面。 2method属性设置表单数据的提交方式。method属性的值为GET或POST,默认为GET。 3title属性设置表单的提示信息。当用户的鼠标在表单处停留时,浏览器用一个黄色的小浮标显示提示文本。,6-3 使用FORM表单实现浏览器端的数据采集,1. 表单标签 4enctype属性设置提交表单数据时的编码方式。enctype属性的值为multipart/form-data或application/x-www-form-urlencoded,默认为“application/x-www-form-urlencoded“。当一个FORM表单中存在文件上传框时,必须将enctype属性设置为

10、multipart/form-data编码方式。 5name属性为当前的FORM表单命名。,6-3 使用FORM表单实现浏览器端的数据采集,2. 表单控件 1单行文本框 2密码框 3多行文本框 4隐藏域 5复选框 6单选框 7文件上传框 8下拉选择框,注意:表单控件嵌套在FORM表单中才有意义,且每个表单控件都要用一个name属性进行标识。这是因为WEB服务器将依据表单控件的name属性判断传递给服务器的每个值分别是由哪个表单控件产生。为了确保数据的准确采集,需要为每个表单控件定义一个独一无二的名称(同为一个组的单选框以及在表单控件中使用数组两种情况除外)。,6-3 使用FORM表单实现浏览器

11、端的数据采集,3. 在表单控件中使用数组 在一个HTML页面中,有时并不清楚某种表单控件的具体个数。例如:在进行多文件上传时,并不能确定浏览器用户究竟选择多少个上传文件,更无法确定页面中需要多少个文件上传框。在表单控件中使用数组可以解决类似的问题。 在表单控件的name属性值后面加上方括号“ ”从而实现在表单控件中使用数组。使用表单控件数组后,当表单提交时,相同name属性的表单控件则以数组的方式向WEB服务器提交多个数据。,6-3 使用FORM表单实现浏览器端的数据采集,4. 表单按钮 1提交按钮 2图像提交按钮 3重置按钮 4自定义按钮,6-3 使用FORM表单实现浏览器端的数据采集,5.

12、 FORM表单综合应用, 用 户 名: 登录密码: 确认密码: ,选择性别: 男 女 个人爱好: 音乐 游戏 电影 个人相片: ,备注信息 : 请填写备注信息 提交按钮: 图片按钮: 重置按钮: ,6-4 使用$_GET和$_POST“采集”表单数据,当浏览器向WEB服务器某PHP程序提交数据后,该PHP程序应该根据其“提交”方式决定使用何种数据“采集”方法。当浏览器以GET方式提交的数据时,服务器端PHP程序应当使用预定义变量$_GET“采集”提交数据;当浏览器以POST方式提交的数据时,服务器端PHP程序应当使用预定义变量$_POST“采集”提交数据;当以POST方式提交的请求数据中包

13、含上传文件时,服务器端PHP程序应当使用预定义变量$_FILES“采集”上传文件。,6-5 上传文件的“数据采集”,1. 与上传相关的配置 下面的配置选项保存在php.ini配置文件中,可以适当的修改这些的配置选项满足特定的文件上传需要。 file_uploads:配置了是否允许通过HTTP协议上传文件。默认值为On,表示PHP预处理器支持文件上传功能。典型配置示例:file_uploads = On post_max_size:使用POST提交方式提交表单数据时,post_max_size选项配置了PHP预处理器能够接受的最大表单数据大小。默认值为8M,表示表单中所有数据(包括上传文件)大小

14、之和必须小于8M字节,否则PHP程序将不能采集到任何的表单数据。即当表单数据大小大于post_max_size选项定义的值时,提交表单后,$_GET、$_POST和$_FILES将为空数组。典型配置示例:post_max_size = 8M,6-5 上传文件的“数据采集”,1. 与上传相关的配置 upload_max_filesize:配置了当前表单中文件上传框允许上传文件的最大值,默认值为2M。当表单中有多个文件上传框时,可以使用upload_max_filesize选项限制每个上传文件的大小。即若表单有多个文件上传框时,文件大小不超过upload_max_filesize选项定义的上传框将

15、上传成功,文件大小超过upload_max_filesize选项定义的上传框将上传失败,上传框之间互不影响上传结果。典型配置示例:upload_max_filesize = 2M,6-5 上传文件的“数据采集”,1. 与上传相关的配置 upload_tmp_dir:配置了PHP上传文件的过程中产生临时文件(默认扩展名为tmp)的目录。默认值为:“c:/wamp/tmp“,表示临时文件存放在目录c:/wamp/tmp中。典型配置示例:upload_tmp_dir = “c:/wamp/tmp“ 配置好上面四个参数后,在网络正常的情况下,上传小于8M的文件一般不会出现问题。但如果要上传“大”文件,

16、或者网速较慢,只进行上面的配置未必行得通,此时还需进行下面的配置。 max_input_time:配置单个PHP程序解析提交数据(以POST或GET方式)的最大允许时间,单位是秒,默认值为60。当设置为-1 表示不限制。典型配置示例:max_input_time = 60,6-5 上传文件的“数据采集”,1. 与上传相关的配置 memory_limit:配置单个PHP程序在服务器主机运行时,可以占用服务器最大内存数,默认值为128M。当设置为-1表示为不限制。典型配置示例:memory_limit = 128M max_execution_time:配置单个PHP程序在服务器端运行时占用服务器

17、的最大时间,单位是秒,默认值为30。配置该选项可以有效避免死循环或大文件上传等程序长期占用服务器CPU导致服务器崩溃。如果设置值为0表示不限制运行时间。典型配置示例:max_execution_time = 30。在PHP程序中使用set_time_limit()函数也可以设置该选项,例如:set_time_limit(0)。,6-5 上传文件的“数据采集”,2. PHP文件上传流程,6-5 上传文件的“数据采集”,3. 预定义变量$_FILES 使用预定义变量$_FILES可以获取上传文件的相关信息,$_FILES是一个二维数组。例如可以在程序register.php中使用如下方法得到reg

18、ister.html表单中“个人相片”上传文件的相关信息: $_FILESmyPicturename:上传文件的文件名; $_FILESmyPicturetype:上传文件的MIME类型; $_FILESmyPicturesize:上传文件的大小,单位为字节; $_FILESmyPicturetmp_name:与上传文件相对应的服务器端的临时文件名; $_FILESmyPictureerror:文件上传的状态代码;,6-5 上传文件的“数据采集”,4. 预定义变量$_FILES 说明:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使

19、用指定应用程序来打开。例如GIF图片的MIME类型为:image/gif。 $_FILESmyPictureerror的取值及对应的意义为: 0:没有错误发生,文件上传成功。 1:上传的文件超过了 php.ini 中upload_max_filesize选项限制的值。 2:上传文件的大小超过了FORM表单中MAX_FILE_SIZE参数指定的值。 3:文件只有部分被上传。 4:表单没有选择上传文件。,6-5 上传文件的“数据采集”,5. PHP文件上传的实现 PHP提供了两个上传相关的函数:is_uploaded_file和move_uploaded_file函数。 1is_uploaded_

20、file()函数 语法格式:bool is_uploaded_file ( string fileName ) 函数功能:is_uploaded_file()函数用于判断文件名为fileName的文件是否为上传过程中产生的临时文件。 例如:is_uploaded_file($_FILESmyPicturetmp_name)的返回值为TRUE。,6-5 上传文件的“数据采集”,5. PHP文件上传的实现 2move_uploaded_file()函数 语法格式:bool move_uploaded_file ( string fileName, string destination ) 函数功能

21、:move_uploaded_file()函数用于将上传过程中文件名为fileName的临时文件移动到指定目录destination中,确保文件的成功上传。如果fileName 不是合法的临时文件,不会出现任何操作,move_uploaded_file()函数将返回 FALSE。 说明:如果目标文件destination已经存在,目标文件destination将会被覆盖。,6-6 WEB服务器端其它数据采集方法,1. 预定义变量$_REQUEST 使用预定义变量$_REQUEST即可以采集GET方式提交的URL查询字符串中的参数信息,也可以采集FORM表单POST方式提交的参数信息。以前程序中

22、所有使用$_GET或$_POST采集的参数信息都可以替换成使用$_REQUEST采集。即:$_REQUEST = array_merge ( $_GET , $_POST )。 需要注意的是:使用GET和POST混合方式提交数据时,若一个参数名既存在于GET请求中又存在于POST请求中,使用$_REQUEST采集该参数名对应的参数值时,将造成数据的丢失。,6-6 WEB服务器端其它数据采集方法,2. 预定义变量$_SERVER 使用预定义变量$_SERVER可以得到浏览器端和服务器端主机的一些相关信息,例如: $_SERVER“REMOTE_ADDR“:定义了浏览器端主机的IP地址; $_SERVER“SERVER_ADDR“:定义了服务器主机的IP地址; $_SERVER“PHP_SELF“:定义了当前执行程序的文件名; $_SERVERQUERY_STRING:定义了URL的查询字符串; $_SERVERDOCUMENT_ROOT:定义了WEB服务器主目录; $_SERVER“REQUEST_URI“:定义了除域名外的其余URL部分。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1