PHP入门PHP与Web页交互

上传人:宝路 文档编号:48187737 上传时间:2018-07-11 格式:PPT 页数:27 大小:551.07KB
返回 下载 相关 举报
PHP入门PHP与Web页交互_第1页
第1页 / 共27页
PHP入门PHP与Web页交互_第2页
第2页 / 共27页
PHP入门PHP与Web页交互_第3页
第3页 / 共27页
PHP入门PHP与Web页交互_第4页
第4页 / 共27页
PHP入门PHP与Web页交互_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《PHP入门PHP与Web页交互》由会员分享,可在线阅读,更多相关《PHP入门PHP与Web页交互(27页珍藏版)》请在金锄头文库上搜索。

1、变量这里的变量不是PHP脚本中的普通变量,而是PHP脚本中获取服务器环境信息,请求信息(包括表单参数和cookie)的方法。通常把这些信息统称为EGPCS(environment、GET、POST、cookies、server)。 这里主要讲解了如何获取这些变量的值,以及在php.ini文件中有关这些变量的设置。 如果php.ini文件中的register_globals选项被启用,PHP就会为第一个表单参数、请求信息服务器环境创建一个独立的全局变量。这个功能非常方便,它可以让浏览器为程序初始化任何变量。但这个功能也非常危险。这一点将在后面的章节中介绍。 如果忽略register_global

2、s的设置,PHP将创建6个包含EGPCS信息的全局数组,通过它们获取EGPCS传递的数据。 变量$_COOKIE:获取COOKIE中传递的所有cookie值,数组的键名是cookie名称。 $_POST:获取POST请求传递的参数,数组的键名是表单参数的名称。 $_GET:获取GET请求传递的参数值,数组的键名是表单参数的名称 $_FILES:获取上传文件的所有信息。 $_SERVER:获取服务器的相关信息. $_ENV:获取环境变量的值,键名是环境变量的名称。 以上这些变量不但是全局的,而且在函数的定义中也是可见的。$_REQUEST数组也由 PHP自动生成,包含了$_GET,$_POST,

3、$_COOKIE三个数组的所有元素。PHP还会创建一个$_SERVERPHP_SELF的变量,用于存放当前脚本的路径和名 称(相对于文档根目录,例如/08/stat.php)。表单处理表单处理包括: 方法(Method) 对参数进行自动引号处理 自处理页面 粘性表单 多值参数 粘性多值参数 文件上传 表单验证表单处理u 方法客户端可以用两种HTTP方法向服务器传送表单数据:GET和POST 。采用哪种方法是由表单标签()中的method属性所指定的。 注意:理论上说在HTML中method是不区分大小写的,但是实际上有些浏览器要求method为大写。GET方法:一个GET请求把表单的参数编码成

4、URL形式,称为查询字符串(query string):/path/to/index.php?subject=despicable如果需要处理大量字符串,还可以封装一个自定义函数: function raw_param ($name) return ini_get(magic_quotes_gpc) ?stripslashes($_GET$name) :$_GET$name; 表单处理u 自处理页面所谓自处理页面,就是一个PHP页面能同时用来生成表单 和处理表单。实现此功能有两种方法: 第一种方法,应用$_SERVERREQUEST_METHOD获取表单中 method的值,如果它的值为GET

5、,则生成表单;如果它的值为POST 则处理表单。 第二种方法,通过isset()函数判断指定的参数是否被创建,如果存 在则执行处理表单的操作,否则执行生成表单的操作。表单处理u 粘性表单很多网站使用一种称为“粘性表单”(sticky form)的技术。 用这种技术,设置一个查询表单的默认值为先前查询的值。例如 :如果在百度(http:/)上查询“明日科技”,则 在结果页面的顶端的另一个查询文本框中,包含先前的查询关键 字“明日科技”。如果将查询的关键字改为“明日科技 编程词典”, 那么只要简单地在后面补充即可。这就是粘性表单。表单处理u 多值参数用HTML中的select标签创建选择列表,允许

6、用户进行多重选择。为 了确保PHP识别浏览器传递来的多个值,需要在HTML表单的字段名后 加上“”,例如:C C+ PHP Per1现在,当用户提交表单时,$_POSTlanguages包含一个数组而 不是一个字符串。这个数组包含用户所选择的值。表单处理u 粘性多值参数实现多值参数的表单具有粘性的方法:封装一个自定义函数,改编复选框创建的方式,以此来达到表单的粘 性功能。自定义函数make_checkbox的语法如下: function make_checkbox($name, $checked, $option) foreach($option as $value = $label) pri

7、ntf(%s n“; 表单处理自定义函数make_checkbox创建具有相同名称的复选框,其中参数 name指定复选框组的名称;参数checked设置复选框默认值;参数 option定义复选框的名称和值。表单处理u 文件上传文件上传,通过表单中的文件域提交上传文件,通过$_FILES数组 处理文件,通过is_uploaded_file()函数验证上传文件,通过 move_uploaded_file()函数完成文件上传。在PHP中上传文件最大的问题是对超大文件的处理。PHP有两种方法 避免出现这种情况:一个硬性限制和一个软性限制。(1)在php.ini中文件中,可以对上传文件进行硬性限制。包括

8、:是否 支持上传、上传文件的临时目录、上传文件的大小、指令执行的时间、 指令分配的内存空间。(2)在表单中,在文件域之前添加一个名称为MAX_FILE_SIZE的隐 藏域,通过它的值可以实现上传文件大小的软限制。表单处理$_FILES全局数组为一个多维数组,用于获取通过POST方法上传 文件时的相关信息。如果是单文件上传,那麽数组为二维数组,如果是 多文件上传,那麽数组为三维数组。$_FILES数组中每个元素的含义,如下所示。 $_FILESfilenamename:浏览器提供的文件名。使用价值不 大,因为客户端机器上的文件名约定有可能和Web服务器不同(例如: 如果客户机为Windows系统

9、,文件名可能为“C:PHOTOSME.JPG”, 而服务器为Unix系统,那么这个文件路径没什么意义) $_FILESfilenamesize:已上传文件的大小。单位为字节。如 果用户试图上传一个过大的文件,它的大小将被置为0 $_FILESfilenametmp_name:文件上传到服务器后,在服务器中的临 时文件名 $_FILESfilenametype:从客户端上传的文件类型。例如:“image/gif”, 主类型为“图像”,子类型为GIF格式的文件,“text/html”代表文本的HTML 文件 表单处理$_FILESfilenameerror:返回在上传过程中发生错误的错误代号。错误

10、 代号有5种,如下所示: 0:表示没有任何错误,文件上传成功 1:表示上传文件的大小超出了PHP配置文件指令upload_max_filesize选 项限制的值 2:表示上传文件大小超出了HTML表单中MAX_FILE_SIZE选项所指定的值 3:表示文件只被上传了一部分 4:表示没有上载任何文件PHP中应用is_uploaded_file()函数判断指定的文件是否是通过 HTTP POST上传的,如果是则返回TRUE,则可以继续执行文件的上 传操作,否则将不能够继续执行。 语法:bool is_uploaded_file ( string filename ) 说明:参数filename必须

11、指定类似于$_FILESfilenametmp_name 的变量,不可以使用从客户端上传的文件名$_FILESfilenamename表单处理通过is_uploaded_file()函数对上传文件进行判断,可以确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。PHP中应用move_uploaded_file()函数将文件上传到服务器中指定 的位置。如果成功返回TRUE,否则返回FALSE。 语法:bool move_uploaded_file ( string filename, string destination ) 说明:参数filename指定上传文件的临

12、时文件名,即 $_FILEStmp_name;参数destination指文件上传后保存的新路径 和名称。说明:如果参数filename不是合法的上传文件,不会执行任何操作, move_uploaded_file()将返回FALSE。如果参数filename是合法的上传文件 ,但出于某些原因无法移动,同样也不会执行任何操作, move_uploaded_file()将返回FALSE。此外还会发出一条警告。 表单处理u 表单验证在使用和存储表单提交的数据时,通常需要对这些数据进行验证,其 验证的方法很多。首先是在客户端使用JavaScript。但是用户可以禁用 JavaScript,甚至使用一个

13、不支持JavaScript的浏览器,所以用这个方 法还不够。更为稳妥的方式是通过PHP来完成验证。验证表单元素是否 为空,首先通过isset()函数检测变量是否设置;然后通过empty()检测 变量是否为空。 通过PHP对具体的表单元素值进行验证,如果是单纯的数字、英文字 符串、字符串大小写的区分等等,PHP中有相应的函数可以独立完成。 但是,如果是对电话号码、Email或者IP地址等进行验证时,必须借助 正则表达式的帮助。设置响应头内容设置响应头内容有哪些: 不同的内容类型 重定向 设置过期时间 HTTP认证 文件下载设置响应头使用header()函数来设置头部语法:void header

14、( string string , bool replace , int http_response_code )参数说明: String:必要参数。输入的头部信息 replace :可选参数。指明是替换掉前一条类似的标头还是 增加一条相同类型的标头。默认为替换,但如果将其设为false 则可以强制发送多个同类标头 http_response_code :可选参数。强制将HTTP响应代码 设为指定值,此参数是php5.3.0以后添加的。 注意:设置header一定要在生成主体内容之前完成,这意味着所有 header()(或setcookie(),如果你想设置cookie)要在文件的最前面,甚

15、至在标签之前不同的内容类型Content-Type头指定被返回文档的类型。它通 常是“text/html”,指明它是一个HTML文档,但还有 其他一些有用的文档类型。例如“text/plain”让浏览 器强制性地将内容当作纯文本来处理。这个类型就类 似于自动的“查看源代码”,它在调试时很有用。重定向通过header()函数可以向浏览器发送一个新的URL,并让浏览器转向到这个地址。这样的重定向(redirection)操作, 只需要通过设置Location头即可。例如,通过header()函数重 定向到http:/,其代码如下:header(“Location: http:/“); 重定向操作更倾向于绝对路径,如果提供相对的URL(如 “/index.php”),重定向会在服务器内部进行。这种方法很少 用,因为浏览器并不知道它得到的页面是否是所请求的。如果在 新的文档中存在相对URL,浏览器会将它们解释成相对于所请求 的文档,而不是被发送的文档。设置过期时间服务器可以显式地通知浏览器文档的过期时间。代理服务器和浏览 器缓存在过期之前可保持文件,或提前结束它。重新载入一个被缓存的 页面不需要和服务器进行通讯。但是尝试获取一个已经过期的文档就需 要与服务器取得联系。为一个文档设置过期时间,应用的是Expires头: header(“Expires: Mon, 08 Jul 201

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号