您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 传智播客php培训19
—高级软件人才实作培训专家!北京传智播客教育进阶讲师:韩顺平hanshunping@tsinghua.org.cn—高级软件人才实作培训专家!主讲韩顺平php进阶-内容介绍(一)会话技术1.1cookie1.2session(二)用户登录系统功能改进—高级软件人才实作培训专家!主讲韩顺平php进阶-会话什么是会话?•会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决的一些问题?•每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据。•例如:多个用户点击超链接通过一个servlet各自购买了一个商品,服务器应该想办法把每一个用户购买的商品保存在各自的地方,以便于这些用户点结帐servlet时,结帐servlet可以得到用户各自购买的商品为用户结帐。•提问:这些数据保存在request行不行?—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据的两种技术SessionCookie—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术cookie思考一个问题—抛砖引玉☞大家在访问某个网站的时候,是否能看到提示你上次登录网站的时间,而且要注意的是不同用户上次登录的时间肯定是不一样的,这是怎么实现的?—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie思考一个问题—抛砖引玉☞大家在访问某个购物网站的时候,是否能看到提示你曾经浏览过的商品,同样也是不同用户浏览过的商品肯定不一样,这是怎么实现的?还有我们在登录某个网站的时候,往往都可以选择保存登录信息多久,不用重复输入登录信息,这个又是怎么实现的?—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie解决之道—cookie技术Cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie服务器ABC什么是cookie服务器在客户端保存用户的信息,比如登录名,密码等..就是cookie,这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取,保存在客户端的浏览器缓存目录下,可以通过右边的图来理解—高级软件人才实作培训专家!主讲韩顺平php进阶-cookiecookie可以用来做什么?1:保存上次登录时间等信息2:保存用户名、密码,在一定时间不用重新登录3:记录用户访问网站的喜好(比如有无背景音乐、网页的背景色是什么4:网站的个性化,比如定制网站的服务,内容。—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie名字String值Stringcookie基本使用1:Cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String2:如何创建一个Cookie(在服务端创建的)boolsetcookie(stringname[,stringvalue[,intexpire[,stringpath[,stringdomain[,boolsecure]]]]])3:如何读取cookie(从客户端读到服务器)$_COOKIE[‘cookie的名字’];4:如何删除一个cookie值要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。案例演示cookie1.phpcookie2.phpcookie4.php—高级软件人才实作培训专家!主讲韩顺平php进阶-cookieapisetcookie函数参数一览表—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie再理解浏览器服务器php1php2Set-Cookie:name=顺平Set-Cookie:name=顺平name=顺平IE缓存区cookie:name=顺平cookie:name=顺平—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie应用①显示用户上次访问时间cookie3.php—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie应用我们在雇员管理系统中增加功能:(1)登录manageEmp.php页面时候,显示该用户登录的上一次时间(2)打开登录页面的时候,自动填写该用户的用户名和密码【这个要求学员课堂练习】—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie应用②显示用户上次浏览过的商品cookie5.php—高级软件人才实作培训专家!主讲韩顺平php进阶-cookie细节一个Cookie只能标识一种字符串信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用expire,并给出一个以秒为单位的时间。要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。cookie6.php—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session思考两个问题—抛砖引玉☞大家都在网上购买过商品吧,比如淘宝网。张三和李四他们购买的商品不一样,他们的购物车中的显示的商品也不一样,这是怎么实现的?☞另外一个问题,不同的用户登录网站后,不管该用户浏览该网站的哪个页面,都可显示登录人的名字,同样可以随时去查看自己的购物车中的商品。—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session解决之道—session技术Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session服务器ABCACBABC当用户打开浏览器,访问某个网站时操作session时,服务器就会在服务器的内存为该浏览器分配一个session,该session被这个浏览器独占。这个session也可看做是一个数组,session数据默认存在时间为1440s(即24min),从~\php.ini的[session]节可以配置—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session1:网上商城中的购物车2:保存登录用户的信息3:将某些数据放入到Session中,供同一用户的各个页面使用4:防止用户非法登录到某个页面…….—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session名字String值Objectsession不是特别好理解,你可以把session看作是一容器类似数组,有两列。每一行就是session的一个数据。每个数据包含有两个部分,一个是该数据的名字(String),另外一个是它的值(Object)。—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术sessionkey值String数据值1:初始化sessionsession_start();2:向session添加数据$_SESSION[‘key值’]=$val;3:从session得到某个数据值$val=$_SESSION[‘key值’];4:删除session关联的数据//初始化sessionsession_start();//销毁和当前session关联的所有数据.session_destory();session1.phpsession2.phpsession3.php—高级软件人才实作培训专家!主讲韩顺平php进阶-保存会话数据技术session在WEB开发中,服务器可以为每个用户浏览器创建一个超全局变量$_SESSION,注意:一个浏览器独占一个$_SESSION(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的$_SESSION中,当用户使用浏览器访问其它php页面时,其它php页面可以从用户的$_SESSION中取出该用户的数据,为用户服务。Session和Cookie的主要区别在于:•Cookie是把用户的数据写给用户的浏览器。•Session技术把用户的数据写到用户独占的$_SESSION中,存在服务器的某个路径的文件中。$在使用$_SESSION前要保证session被初始化,具体的方法有:①先调用session_start();②配置php.inisession.auto_start=1(不推荐,会影响效率)—高级软件人才实作培训专家!主讲韩顺平php进阶-session原理深入理解疑问:服务器是如何实现一个session为一个用户浏览器服务的?浏览器B浏览器Aphp1start_session();php2start_session();SessionId=11SessionId=22Cookie:PHPSESSID=11cookie:phpsessid=11cookie:phpsessid=22cookie:phpsessid=22问题:如何实现多个IE浏览器共享同一session?(应用:关掉IE后,再开IE).实验—高级软件人才实作培训专家!主讲韩顺平php进阶-session的实际案例购物车实际案例—给出界面,然后实现为后面讲解禁用cookie后还能使用session的知识点.—高级软件人才实作培训专家!主讲韩顺平php进阶-session原理深入理解实验演示禁用Cookie后php共享数据导致的问题。解决方案:URL重写•response.encodeRedirectURL(java.lang.Stringurl)•用于对sendRedirect方法后的url地址进行重写。•response.encodeURL(java.lang.Stringurl)•用于对表单action和超链接的url地址进行重写附加:•Session的失效,使用session_destory()•php.ini文件配置session失效时间•IE禁用Cookie后的session处理方案—高级软件人才实作培训专家!主讲韩顺平php进阶-session的实际应用防止用户非法登录到某个页面要求用户必须登录后,才能操作管理页面.—高级软件人才实作培训专家!主讲韩顺平php进阶-session的实际应用用户登录时验证输入的验证码是否正确(1)一次性验证码的主要目的就是为了限制人们利用工具软件来暴力猜测密码。(2)服务器程序接收到表单数据后,首先判断用户是否填写了正确的验证码,只有该验证码与服务器端保存的验证码匹配时,服务器程序才开始正常的表单处理流程。—高级软件人才实作培训专家!主讲韩顺平php进阶-session的实际应用请在我们的雇员管理系统添加验证码功能—高级软件人才实作培训专家!主讲韩顺平php进阶-php.ini关于cookie和session配置说明php.ini中关于cookie和session配置说明(重点,难点)session.name=名字说明:Nameofthesession(usedascookiename)session.use_trans_sid=0说明:给每个url启用session名=sessionId,对安全有影响,不推荐开启session.save_path=“c:/my
本文标题:传智播客php培训19
链接地址:https://www.777doc.com/doc-966088 .html