请教关于php5中session使用的一些基础问题
各位大神,我对session的使用有一些问题,网上的一讲解有些深入,对我解决当前问题作用比较少,请教问题如下,能不能举个例子让我明白用户登陆成功后是如何存储session...
各位大神,我对session的使用有一些问题,网上的一讲解有些深入,对我解决当前问题作用比较少,请教问题如下,能不能举个例子让我明白用户登陆成功后是如何存储session,如何在不同页面间保持登陆状态的,如果要注销登陆如何做呢?不同的用户之间session如何区分他们的id是多少的?session的原理我学过了,但是实际使用中脑子不太能转过弯来,希望有简单实际些的例子,谢谢
展开
3个回答
展开全部
session是一个全局变量,也就是 你在一个网页上设置session 其他网页都能调用到这个session
然后 存储设置session 有专门的函数,想必 你知道
不同页面 保持登录状态,也就是所有页面都判断是否有 session,想必你觉得这岂不是很麻烦,呵呵,你可以 专门写一个php 判断session 然后 所有页面 include或者require去包含即可
至于 注销登录 就是 注销session 值
然后如何区分不同用户,这个是php内部会解决的,不用你担心,如果要说就是 每个session都有自动设置一个session_id,他对应不同用户。这个不用管
然后 存储设置session 有专门的函数,想必 你知道
不同页面 保持登录状态,也就是所有页面都判断是否有 session,想必你觉得这岂不是很麻烦,呵呵,你可以 专门写一个php 判断session 然后 所有页面 include或者require去包含即可
至于 注销登录 就是 注销session 值
然后如何区分不同用户,这个是php内部会解决的,不用你担心,如果要说就是 每个session都有自动设置一个session_id,他对应不同用户。这个不用管
展开全部
http://dl.vmall.com/c0x0yodcx7这个网站有session的视频教程,非常不错哦,看了就很明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于html是无法保持用户状态的,所以衍生出了cookie这种东西用来保存一些持久性数据。其原理就是在浏览器端保存一些数据,这些数据在访问者访问网页时浏览器会自动把cookie数据发送给服务端。 举个例子来说,cookie中保存了user=test,那么当你访问localhost/index.php时,user=test这个数据会被浏览器自动发送给index.php,然后index.php中就能通过$_COOKIE['user']得到'test'这个值。效果类似(但不等同于)localhost/index.php?user=test。
但是,由于cookie是保存在浏览器端的,所以存在安全性问题,这样就出现了session。session是保存在服务器端的数据,用户无法自行更改,因此更加安全。但是,session的运行也是需要cookie支持的。
当用户访问网页时,如果php中使用session_start()开始了一个session,但是会php会随机生成一个唯一的session_id,这个session_id会已cookie的形式保存在客户端。前面说过了,cookie数据在访问页面时会同时发送,因此php会通过cookie得到session_id,如果得不到就会创建一个新的session,否则就使用和session_id对应的session。cookie中用来保存session_id所使用的变量名称是可以通过修改php.ini文件改变的。
清理session,一种方式为将$_SESSION[]的值清空,如$_SESSION = array(),另一种就是sesssion_destroy(),后者其实就是将cookie中的session_id值去掉了。这样,当你再次访问页面时,因为php得不到可用的session_id,因此以前的session信息就对当前访问者不可见了。
session在服务器端可以以文件形式存储,或者保存在数据库中,是一个字符串的形式。默认是已文件方式存在的,php.ini中设置session文件的保存路径。
访问者和开发者一般都不需要知道session_id,你只要知道它是由php自动生成且唯一就行了。当然,你也可以使用session_id()方法得知当前session的id。
如果还有不理解的地方就追问吧。有用的话望采纳哦
但是,由于cookie是保存在浏览器端的,所以存在安全性问题,这样就出现了session。session是保存在服务器端的数据,用户无法自行更改,因此更加安全。但是,session的运行也是需要cookie支持的。
当用户访问网页时,如果php中使用session_start()开始了一个session,但是会php会随机生成一个唯一的session_id,这个session_id会已cookie的形式保存在客户端。前面说过了,cookie数据在访问页面时会同时发送,因此php会通过cookie得到session_id,如果得不到就会创建一个新的session,否则就使用和session_id对应的session。cookie中用来保存session_id所使用的变量名称是可以通过修改php.ini文件改变的。
清理session,一种方式为将$_SESSION[]的值清空,如$_SESSION = array(),另一种就是sesssion_destroy(),后者其实就是将cookie中的session_id值去掉了。这样,当你再次访问页面时,因为php得不到可用的session_id,因此以前的session信息就对当前访问者不可见了。
session在服务器端可以以文件形式存储,或者保存在数据库中,是一个字符串的形式。默认是已文件方式存在的,php.ini中设置session文件的保存路径。
访问者和开发者一般都不需要知道session_id,你只要知道它是由php自动生成且唯一就行了。当然,你也可以使用session_id()方法得知当前session的id。
如果还有不理解的地方就追问吧。有用的话望采纳哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询