资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,1,动态网站开发与全程实例,ISBN书号:97-7-302-16213-1,作者:聂庆鹏 毛书朋 王志乐,版权所有 本书编写组,PHP+MYSQL,出版:清华大学出版社,本书的技术支持、意见反馈及勘误信息请访问http:/www.17php.com 作者电子信箱:rznqp163.com rzmsp163.com,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,2,第5章 PHP5内置数组和常量,5.1 PHP5的内置数组简介 5.2 接收表单数据和URL附加数据 5.3 用Cookie和Session实现用户登录 5.4 用内置数组获取服务器环境信息,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,3,5.1 PHP5的内置数组简介,PHP 提供了一套附加的内置数组(也称为预定数组),这些数组变量包含了来自 web 服务器(如果可用)、运行环境、和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP 中没有用户自定义超全局变量的机制。),2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,4,5.1 PHP5的内置数组简介,$GLOBALS(Global 变量) 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,5,5.1 PHP5的内置数组简介,$_SERVER(服务器变量) 变量由web服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,6,5.1 PHP5的内置数组简介,$_GET(HTTP GET 变量) 经由URL请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,7,5.1 PHP5的内置数组简介,$_POST(HTTP POST 变量) 经由HTTP POST方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,8,5.1 PHP5的内置数组简介,$_COOKIE(HTTP Cookies) 经由HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,9,5.1 PHP5的内置数组简介,$_FILES(HTTP 文件上传变量) 经由HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,10,5.1 PHP5的内置数组简介,$_ENV(环境变量) 执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,11,5.1 PHP5的内置数组简介,$_REQUEST(Request 变量) 经由GET,POST 和 COOKIE机制提交至脚本的变量,因此该数组并不值得信任(建议尽量少用,甚至不用)。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,12,5.1 PHP5的内置数组简介,$_SESSION(Session 变量) 当前注册给脚本会话的变量。类似于旧数组$HTTP_SESSION_VARS 数组(依然有效,但反对使用)。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,13,5.1 PHP5的内置数组简介,$php_errormsg(前一个错误消息) $php_errormsg 是包含 PHP 产生的上一错误消息内容的变量。该变量在发生错误并且 track_errors 选项打开(默认为关闭)后才有效。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,14,5.1 PHP5的内置数组简介,下面的章节我们就常用的内置数组做较详细的讲解。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,15,5.2 接收表单数据和URL附加数据,在网页的数据传递中不外乎两种方式,一种是接收表单数据(也称为POST方法),另一种是URL附加数据(也称为GET方法)。下面我们就先来学习一下表单接收数据的方法。 例:文件5-1.php:表单数据传递,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,16,5.2 接收表单数据和URL附加数据,例:文件5-2.php:URL附加数据传递,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,17,5.2 接收表单数据和URL附加数据,上面的例子,我们仅仅传递了一个数据,如果我们要传递多个数据应该如何做呢?我们只需要把第行的“5-2.php?show_tag=1”代码改写成诸如“5-2.php?show_tag=1&date_name=date”的代码,就传递了两个数据,也就是说我们在传递多个数据的时候要用“&”j进行连接或分割。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,18,5.2 接收表单数据和URL附加数据,通过上面的两个例子,我们不难发现两种数据传递方法的不同点:GET方法可以在地址栏中显示出来,也就是比较暴露存在着安全隐患,而POST方法则比较隐蔽,特别是隐藏表单的使用,不仅可以增加程序的安全性,还可以传递一些不需要用户输入或不能让用户更改的贯穿若干个网页之间的量值。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,19,5.2 接收表单数据和URL附加数据,友情提示:有了这两种数据传递的方法,我们是不是就可以完成许许多多的交互功能了呢?GET方法的数据,我们是否可以通过其它的方法来增加程序的安全性呢?如果我们传递诸如“id=34&del_id=56”,被人肯定知道传递的是数据表中或其它的id和del_id而且其值为34和56,但是如果我们要传递“34,56”或“34-56”,谁又会知道我们传递的是什么东西呢,而我们在接收到数据的时候,我们只需要根据需要进行字符截取就可以使用了。这样不就大大提高了GET房法数据传递的安全性了吗?,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,20,5.3 用Cookie和Session实现用户登录,Cookie和Session在WEB技术中占有非常重要的份量。由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态。因此我们必须通过Cookie或Session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认,例如,我们在某些网站中常常要求用户登录,但我们怎么知道用户已经登录了呢,如果没有Cookie和Session的话,登录信息是无法保留的,那岂不要让用户在每一页网页中都要提供用户名和密码。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,21,5.3 用Cookie和Session实现用户登录,Cookie是一种在浏览器端储存数据并以此来跟踪和识别用户的机制。PHP 透明地支持 HTTP Cookie。而且从客户端发送的cookie都会被PHP 5自动包括进$_COOKIE的全局数组。如果希望对一个Cookie变量设置多个值,则需在 cookie 的名称后加 “值名称“ ”符号。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,22,5.3 用Cookie和Session实现用户登录,Setcookie 语法: int setcookie(string name, string value, int expire, string path, string domain, int secure); 本函数的参数除了第一个 name 之外,都是可以省略的。参数 name 表示 cookie 的名称;value 表示这个 cookie 的值,这个参数为空字符串则表示取消浏览器中该 cookie 的资料;expire 表示该 cookie 的有效时间;path 为该 cookie 的相关路径;domain 表示 cookie 的网站;secure 则需在 https 的安全传输时才有效。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,23,5.3 用Cookie和Session实现用户登录,Session储存于服务器端(默认以文件方式存储session),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者访问的URL的附加数据来传送给服务器,然后服务器读Session的目录。也就是说,session id是取得存储在服务上Session变量的身份证。如果配置文件“php.ini”中没有设置“session.auto_start=1”,那么要使用Session就必须先运行代码session_start();运行的时候,就在服务器上产生了一个session文件,随之也产生了与之唯一对应的一个session id,定义session变量以一定形式存储在刚才产生的session文件中。通过session id,可以取出定义的变量。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,24,5.3 用Cookie和Session实现用户登录,PHP中的Session在默认情况下是使用客户端的Cookie来保存session id的,所以当客户端的Cookie出现问题的时候就会影响Session了。必须注意的是:session不一定必须依赖Cookie,这也是Session相比Cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把session id附着在URL附加数据中,这样再通过session id就能跨页使用Session变量了。,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,25,5.3 用Cookie和Session实现用户登录,例:5-3.php:COOKIE实现用户登录的表单 例:5-4.php:SESSION实现用户登录的表单,2019年1月19日星期六,本书技术支持站点:http:/www.17php.com,26,5.4 用内置数组获取服务器环境信息,$_SERVER是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由web服务器
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号