热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpsession作用,phpsession原理

本文目录一览:1、php中session有什么用?怎么使用

本文目录一览:


  • 1、php中session有什么用?怎么使用


  • 2、php的session 有什么用


  • 3、PHP session干嘛用的?举个简单易懂的例子


  • 4、php中session重要吗?


  • 5、session的作用是什么


  • 6、编程语言php中,session的意思以及详细的介绍(望语言直白些)谢谢啦!

php中session有什么用?怎么使用

原生态php的session简单使用如下:

sesstion_start();                // 首先开启session

$_SESSION['user'] = 'username';  // 把username存在$_SESSION['user'] 里面

echo $_SESSION['user'];          // 直接输出 username

session_destroy();               // 销毁session

php的session 有什么用

session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期。直到接触asp后才知道session是干什么的,有什么用。

作个不太恰当的比喻吧(虽然不恰当,但意义却是一样的),session就好象你和你女友(或妻子)之间的感情似的,session是你和网站之间的感情。

session在WEB技术中占有非常重要的份量。由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态。因此我们必须

通过session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认,例如,我们在某些网站中常常要求用户登录,

但我们怎么知道用户已经登录了呢,如果没有session的话,登录信息是无法保留的,那岂不要让用户在每一页网页中都要提供

用户名和密码。

当然,session不光用于用户身份认证功能,还可能用于其它方面,以后我们会提到的。

session用中文来解释就是会话期。一个会话期开始于用户输入一个站点的网址时,结束于他离开这个站点时。

session最早出现在动态脚本语言Active Server Pages中,它的功能之强大,是一句话无法说清楚的。

当php还在3.0版本时,session是它永远的痛。虽然php具有执行速度快,使用灵活,功能强大等优点,但因为session的问题,使很多站点的开发放弃了php,至少我的老板是这样认为的。当时有很多php免费函数库提供在php3上实现session的方案,但都让人感觉不正宗。

就好象你花好几千大洋买的手机却配置一个很粗糙的草作的袋子一样,虽然功能是一样的,但总让人觉得别扭。php4的出现让php在session问题上

有了翻身的机会。虽然它的session实现还不是很理想(主要是效率问题),但毕竟是它自己实现的,而且可以实际使用了。

那我们用session干什么呢,你说了半天,我用不上的话,你岂不有卖纸张之嫌。OK,我们来看看session有什么用:作过网站的人都有这样的体会,在一页页面中的变量(在本章都指服务器端变量,下同)是不能在下一页中用的,虽然有一些办法可以实现,比如用form,urlstring等等

但有些对于用户来说是不方便的,即使让form自动提交,但其中的延时在现今的网络状况下足以让人窒息,而这两种方法都明显加大程序员的负担。如果你正在开发一个大型项目,那这些额外的负担是不能忽略的。而有了session就好办了,session中注册的变量可以作为全局变量使用。什么,全局变量?

好极了。这样一来,你知道有什么用了吧:最主要的用于用户身份认证,程序状态记录,页面之间参数传递。

说了它这么半天的好处,你已经动心了吧,先别高兴,它还有缺点呢:它是用文件保存的变量(当然效率不高了,虽然可以用别的方式,但

很麻烦的),不能保存对象。与之相对的是,asp中的session可以保存对象变量,用内存变量来保存session变量。但为什么我们还选用php呢,呵呵,

为什么,你能从本书的开始看到这章,想必你也应该明白了吧,你还不明白,Faint,你再从头看起吧,我保证你成为PHP专家^_^。

session是怎样实现的呢?呵呵,你一定以为很高深吧,我来告诉你它的秘密。如果说只保存变量的话,很多读者都明白,这是很简单的,

但前面我们说过,http协议是一种无状态的连接,你怎么知道那个变量是谁的,这个变量又是谁的呢?在session实现中用COOKIE实现的。COOKIE

存在于客户端,也就是用户的机器中,里面保存着用户的session ID,也就是session号码,当用户的浏览器请求服务器时把session ID也一起送到

服务器,这样服务器就可以识别你是谁,也就可以把变量识别开了。这样我们就不难理解了,为什么有时session会失效了。不信的话,你可以试试:

在IE的"工具"菜单上有"Internet选项"菜单,打开后再选"安全"-"自定义级别",将安全设置中的"允许使用每个对话COOKIEs"设为禁用,再看看

session能不能用。这下明白了吧!不过php4在linux/unix平台上可以自动检查COOKIEs状态,当COOKIEs 不可用时,自动会把session ID

附带在url上进行传递。这是它在session方面比asp多的唯一的优点了。

PHP session干嘛用的?举个简单易懂的例子

session是一个会话,以数组形式存在,并且有一定的有效期,存储在服务器端,而且,他的最大的特性就是具有唯一性!

所谓的唯一性,就是说,在不同的客户端访问,session的值是不相同的。

常用于记录用户的个人信息,比如网站的登录等!

session写入后,在有效期内,无需其他操作即可在同一网站中的任何一个php文件进行访问!

比如,在登录页面写入 $_SESSION['UserName'] = 'abc';

那么,在其他页面可以使用 $_SESSION['UserName']取得这个session的值,根据这个值可以判定用户是否登录、登录的是哪个用户账户等!

需要注意的是,在使用session之前,需要开启session,代码是session_start();

而且,在写入session之前,不能向页面有任何的代码输出,包括html、css、js等等

比如:

html

?php

session_start();

$_SESSION['abc'] = 123;

?

这样是错误的语法,因为之前输出了html这个标签!

php中session重要吗?

非常重要,能保持变量值在不同页面间不变,从而能很好的共享页面间的变量值

session的作用是什么

简单说来是识别用户并保持用户信息

不能使用session会话可能的原因可分几方面

如果是服务端不能用,例如PHP有的时候不能用,可能是Session的存储位置设置有问题或是没有开启session支持

如果是asp或.net不能用(IIS6) 有可能是应用程序池回收过于频繁

如果访问的用户有的能用,有的不能用那就是客户端浏览器禁用了COOKIE

编程语言php中,session的意思以及详细的介绍(望语言直白些)谢谢啦!

Session,中文译为“会话”,它的主要用途在于实现对客户端调用状态的保持。

要理解这个意思,可以考虑以下的情况:

你访问某个网站,然后这个网站是需要以会员身份登录的,那么当你输入用户名、密码正确登录后,这个信息怎么让下面的网页得知这个呢?

我们知道,网页是无状态的,这句话的意思是:如果你访问 a 网页,再访问 b 网页,从实质上说,两个网页之间如果没有特别的手段是完全互不相干的(唯一的联系可能是这两个文件都存在一个服务器上)。

php里的session是超全局数组(php 5以上版本),从这个角度来说,你可以把session看成是保存在内存里,供所有php脚本的访问的数据块。

请参看以下相关资料:

关于session

我们知道,用户访问一个网站时往往需要浏览许多网页。对于一个通过PHP构筑的网站来说,用户在访问的过程中需要执行许多的PHP脚本。然而由于HTTP协议自身的特点,用户每执行一个PHP脚本都需要和Web服务器重新建立连接。

又由于无状态记忆的特点,此次连接无法得到上次连接的状态。这样,用户在一个PHP脚本中对一个变量进行了赋值操作,而在另外一个PHP脚本中却无法得到这个变量的值。例如,用户在负责登录的PHP脚本中设置了$user="wind",却无法在另一个PHP脚本中通过调用$user来获得“wind”这个值。也就是说,在PHP中无法设置全局变量。每个PHP脚本中所定义的变量都是只在这个脚本内有效的局部变量。

Session解决方案,就是要提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个Session中对于所有的PHP脚本都有效。上面我们提到了,Session不是一个简单的时间概念,一个Session中还包括了特定的用户和服务器。因此更详细地讲,在一个Session定义的全局变量的作用范围,是指这个Session所对应的用户所访问的所有PHP。

例如A用户通过Session定义了一个全局变量$user=“wind”中,而B用户通过Session定义的全局变量$user=“jane”。那么在A用户所访问的PHP脚本中,$user的值就是wind。

php中的Session与COOKIE

在PHP开发中对比起COOKIE,session 是存储在服务器端的会话,相对安全,并且不像 COOKIE 那样有存储长度限制,本文简单介绍 session 的使用。

由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。

对于 COOKIE 来说,假设我们要验证用户是否登陆,就必须在 COOKIE 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能只做一次验证。为什么呢?因为客户端 COOKIE 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 COOKIE,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。

而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 COOKIE 而传递密码的不安全性了(session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。

当然使用 session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。


推荐阅读
author-avatar
MC红石粉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有