Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6章 PHP的数据采集.

Similar presentations


Presentation on theme: "第6章 PHP的数据采集."— Presentation transcript:

1 第6章 PHP的数据采集

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

3 6.1.2 POST提交方式 POST数据提交方式一般通过FORM表单实现,由于默认情况下FORM表单的数据提交方式为GET方式,必须在FORM表单的<form />标签中加入属性:method="post",将数据提交方式修改为POST方式。

4 6.1.3 GET和POST混合提交方式 还可以使用FORM表单实现GET和POST混合提交方式,即向WEB服务器某PHP程序发出“GET请求”的同时,还向该PHP程序发出“POST请求”。

5 两种提交方式的比较 POST提交方式比GET提交方式安全。这是由于GET提交方式提交的数据将出现在URL查询字符串中,并且这些带有查询字符串的URL可以被浏览器缓存到历史记录中。因此诸如用户注册、登录等系统,不建议使用GET提交方式。 POST提交方式可以提交更多的数据。理论上讲POST提交方式提交的数据没有大小限制,而GET提交方式提交的数据由于出现在URL查询字符串中,而URL的长度是受限制的(例如IE浏览器对URL长度的限制是2083字节)。例如:新闻发布系统中提交篇幅较长的新闻信息时,不建议使用GET提交方式;带有文件上传功能的FORM表单则必须使用POST提交方式。 不同的“提交”方式对应的服务器端数据“采集”方式不同。

6 6.2 相对路径和绝对路径 6.2.1 绝对路径 绝对路径是与相对路径相对立的,通常是一个完整的URL,该URL由两个部分构成:
scheme:用来描述寻找数据所采用的机制,即:协议。如http协议和ftp协议等 位置(Location):用来描述到哪儿去寻找数据的资源 这两部分使用“://”分隔,例如: 由于绝对路径无论出现在哪儿都代表相同的内容,因此绝对路径通常在访问系统外部资源时才使用,而访问系统内部资源时一般使用相对路径,方便程序的移植。

7 6.2.2 相对路径 相对路径可以分为两类:server-relative路径与page-relative路径。
server-relative路径是以斜杠“/”开头的相对路径。在HTML中,以斜杠“/”开头的相对路径表示从WEB服务器的根目录下开始查找相应的资源文件。使用默认配置安装WAMP后,目录“C:/wamp/www”为Apache服务器的根目录,因此使用相对路径“/index.php”访问资源时,访问的是目录“C:/wamp/www”下的index.php页面;使用相对路径“/6/register.html”访问资源时,访问的是目录“C:/wamp/www”中的目录“6”下的register.html文件。

8 6.2.2 相对路径 page-relative路径不以斜杠开头。此时当文件1访问文件2(HTML页面、PHP程序或图片等)资源时,将从文件1的当前目录作为起点查找文件2资源。例如当目录“C:/wamp/www/6/”中的register.html文件使用超链接访问该目录下的register.php文件时,只需在register.html文件的超链接中直接指定register.php文件即可。

9 6.2.3 相对路径其它概念 (1)同一个目录下的资源访问 如果文件1和文件2在同一个目录,这两个文件间的相互访问直接使用文件名即可。
(2)如何表示当前目录 .表示文件的当前目录。 (3)如何表示上级目录 ../表示文件所在目录的上一级目录,../../表示文件所在目录的上上级目录,以此类推。 (4)如何表示下级目录 如果文件1访问下级目录中的文件2,直接指定该目录和文件2的文件名即可。

10 6.3 FORM表单实现浏览器端的数据采集 FORM表单由三部分组成: 表单标签:定义了表单处理程序及数据提交方式等信息。
 表单控件:包括单行文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等表单控件。  表单按钮:包括提交按钮、复位按钮和一般按钮。

11 6.3.1 表单标签<form></form>
表单标签<form>常用的属性有action、method、enctype、title、name等。 (1)action属性设置当前表单数据“提交”的目的地址。当不设置action属性,或设置值等于空字符串(即action="")时,表单数据提交给当前页面。 (2)method属性设置表单数据的提交方式。method属性的值为GET或POST,默认为GET。 (3)title属性设置表单的提示信息。当用户的鼠标在表单处停留时,浏览器用一个黄色的小浮标显示提示文本。

12 (4)enctype属性设置提交表单数据时的编码方式。enctype属性的值为multipart/form-data或application/x-www-form-urlencoded,默认为"application/x-www-form-urlencoded"。当一个FORM表单中存在文件上传框时,必须将enctype属性设置为multipart/form-data编码方式。 (5)name属性为当前的FORM表单命名。

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

14 6.3.3 在表单控件中使用数组 在一个HTML页面中,有时并不清楚某种表单控件的具体个数。例如:在进行多文件上传时,并不能确定浏览器用户究竟选择多少个上传文件,更无法确定页面中需要多少个文件上传框。在表单控件中使用数组可以解决类似的问题。 在表单控件的name属性值后面加上方括号“[ ]”从而实现在表单控件中使用数组。使用表单控件数组后,当表单提交时,相同name属性的表单控件则以数组的方式向WEB服务器提交多个数据。

15 6.3.4 表单按钮 (1)提交按钮 (2)图像提交按钮 (3)重置按钮 (4)自定义按钮

16 6.3.5 FORM表单综合应用 <form action="register.php" method="post" enctype="multipart/form-data"> 用 户 名: <input type="text" name="userName" size="20" maxlength="15" value="必须填写用户名" /> @ <select name="domain">   <option selected>163.com</option>   <option </select> <br/> 登录密码: <input type="password" name="password" size="20" maxlength="15" /> 确认密码: <input type="password" name="confirmPassword" size="20" maxlength="15" /> 选择性别: <input name="sex" type="radio" value="male" checked />男 <input name="sex" type="radio" value="female" />女 <br/> 个人爱好: <input name="interests[]" type="checkbox" value="music" checked />音乐 <input name="interests[]" type="checkbox" value="game" checked />游戏 <input name="interests[]" type="checkbox" value="film" />电影 个人相片: <input type="hidden" name="MAX_FILE_SIZE" value="1024" /> <input type="file" name="myPicture" size="25" maxlength="100" /> 备注信息 : <textarea name="remark" cols="30" rows="4">请填写备注信息</textarea> <br/> 提交按钮: <input type="submit" name="submit1" value="普通提交按钮" /> 图片按钮: <input type="image" name="submit2" src=" height="40" /> 重置按钮: <input type="reset" name="cancel" value="重新填写" /> </form>

17 6.4 使用$_GET和$_POST“采集”表单数据
当浏览器向WEB服务器某PHP程序提交数据后,该PHP程序应该根据其“提交”方式决定使用何种数据“采集”方法。当浏览器以GET方式提交的数据时,服务器端PHP程序应当使用预定义变量$_GET“采集”提交数据;当浏览器以POST方式提交的数据时,服务器端PHP程序应当使用预定义变量$_POST“采集”提交数据;当以POST方式提交的请求数据中包含上传文件时,服务器端PHP程序应当使用预定义变量$_FILES“采集”上传文件。

18 6.5 上传文件的“数据采集” 6.5.1 与上传相关的配置 6.5.2 PHP文件上传流程 6.5.3 预定义变量$_FILES
可以适当的修改php.ini配置文件中的配置选项以满足特定的文件上传需要。 6.5.2 PHP文件上传流程 6.5.3 预定义变量$_FILES

19 6.6 WEB服务器端其它数据采集方法 6.6.1 预定义变量$_REQUEST
使用预定义变量$_REQUEST即可以采集GET方式提交的URL查询字符串中的参数信息,也可以采集FORM表单POST方式提交的参数信息。以前程序中所有使用$_GET或$_POST采集的参数信息都可以替换成使用$_REQUEST采集。即:$_REQUEST = array_merge ( $_GET , $_POST )。 注意:使用GET和POST混合方式提交数据时,若一个参数名既存在于GET请求中又存在于POST请求中,使用$_REQUEST采集该参数名对应的参数值时,将造成数据的丢失。

20 6.6.2 预定义变量$_SERVER 使用预定义变量$_SERVER可以得到浏览器端和服务器端主机的一些相关信息,例如:
$_SERVER["REMOTE_ADDR"]:定义了浏览器端主机的IP地址; $_SERVER["SERVER_ADDR"]:定义了服务器主机的IP地址; $_SERVER["PHP_SELF"]:定义了当前执行程序的文件名; $_SERVER['QUERY_STRING']:定义了URL的查询字符串; $_SERVER['DOCUMENT_ROOT']:定义了WEB服务器主目录; $_SERVER["REQUEST_URI"]:定义了除域名外的其余URL部分。


Download ppt "第6章 PHP的数据采集."

Similar presentations


Ads by Google