导航:首页 > 编程语言 > php监听session

php监听session

发布时间:2023-05-31 22:17:59

㈠ 怎么在指定的页面监听sessions

自动退出和返回主页这些都是浏览器端的动作,服务器端是没法控制的。浏览器端的动作可以使用javascript来实现。
具体可以用javascript来纤首实现一弯野个倒数功能,时间到了之后,返回主页。
服务器端可以用 SessionListener 来监听 Session 的销毁(destroy),销毁发生时触发修改数据毁闹数库就可以了。

php session原理

在解决问题之前,先来了解一下 PHP SESSION 的工作原理。在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数 session_id() 获取/设置)。SESSION ID 可以通过两种方式保留在客户端,使得请求不同的页面时,PHP 程序可以获知客户端的 SESSION ID;一种是将 SESSION ID 自动加入到 GET 的 URL 中,或者 POST 的表单中,默认情况下,变量名为 PHPSESSID;另一种是通过 COOKIE,将 SESSION ID 保存在 COOKIE 中,默认情况下,这个 COOKIE 的名字为 PHPSESSID。这里我们主要以 COOKIE 方式进行说明,因为应用比较广泛。

那么 SESSION 的数据保存在哪里呢?当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。默认情况下,php.ini 中设置的 SESSION 保存方式是 files(session.save_handler = files),即使用读写文件的方式保存 SESSION 数据,而 SESSION 文件保存的目录由 session.save_path 指定,文件名以 sess_ 为前缀,后跟 SESSION ID,如:sess_。文件中的数据即是序列化之后的 SESSION 数据了。如果访问量大,可能产生的 SESSION 文件会比较多,这时可以设置分级目录进行 SESSION 文件的保存,效率会提高很多,设置方法为:session.save_path="N;/save_path",N 为分级的级数,save_path 为开始目录。当写入 SESSION 数据的时候,PHP 会获取到客户端的 SESSION_ID,然后根据这个 SESSION ID 到指定的 SESSION 文件保存目录中找到相应的 SESSION 文件,不存在则创建之,最后将数据序列化之后写入文件。读取 SESSION 数据是也是类似的操作流程,对读出来的数据需要进行解序列化,生成相应的 SESSION 变量。

㈢ php网站退出功能

要实现你想要的功能,需要在打开的其他页面上添加一个 监听session(cookie)登陆状态的js功能,可以使用ajax或者(iframe嵌套页面)来刷新监听登陆状态,一旦一个页面退出登陆,监听session的页面可以使用js重定向页面登陆。

㈣ 关于php获取Session问题  怎么获取session中的值


$_COOKIE
输出来,我觉得你那里
$_COOKIE里的传送session_id的值都变了。如果真的是这样,我猜你测试的
网址

域名
是有
下划线
的。

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

原生态php的session简单使用如下:
sesstion_start();//首先开启session
$_SESSION['user']='username';//把username存在$_SESSION['user']里面
echo$_SESSION['user'];//直接输出username
session_destroy();//销毁session

㈥ 关于 php中session的问题

首先,
php

session
是存储在
服务器
上,
不随用户
浏览器
的关闭而消失的.
PHP
有自己的一套清理
SESSION
的机制.
建议你打开
php.ini
看下面这些部分:
;
Name
of
the
session
(used
as
cookie
name).
session.name
=
PHPSESSID
;
Initialize
session
on
request
startup.
session.auto_start
=
0
;
Lifetime
in
seconds
of
cookie
or,
if
0,
until
browser
is
restarted.
session.cookie_lifetime
=
0
session.gc_probability
=
1
session.gc_divisor
=
1000
尤其是最后2句,
关系到
SESSION
的谈桥清理
算法
.
自己
BAIDU
查一下吧,
一言难尽.
最后说你要的效果:
我实现的效果是登录
后台

管理员
的名字创建session,关闭浏览含扒猛器后session消失
那你首先需要对
COOKIE
做设置,
关闭后就消失
(当然有的浏览器并此野不严格执行,比如Firefox)
或者
PHP
判断连接中断时,
调用
unset($_SESSION);
session_destroy();
将用户
SESSION
擦掉

㈦ PHP有没有办法监听session - PHP进阶讨论

java中似乎有一个session监听的功能,不知道PHP有没有提供类似的东西……比如,一个商城,要记录顾客今天访问了哪些商品,如果采用每访问一个商品就在数据库里写一次数据的话,数据库操作稍显频繁,所以我想把用户的访问记录先暂存在session里,在用户退出,或者session失效的时候,再一次性写入数据库。如果PHP不能自动监听session的话,那有没有好的方法来实现上面所说的功能?

㈧ 关于php中session的问题

PHP可以用session存储单个的敏拿陪值,也可以以数组形桥蠢式存储和传递。示例如下:
入口文件设置session数组:
<?php
session_start();
$_SESSION['name']="";
$_SESSION['age']=9;
在其敏乎他页面获取session数组示例:
<?php
session_start();

var_mp($_SESSION['name']);
//

echo $_SESSION['age'];

㈨ 关于PHP里SESSION的问题

session是在用户登录服务器后,服务器给每个用户一个sessionID,这个是唯一的,通常我写程序会在session里面记录一下登录用户的信息,你在A机器上面访问那个给session赋值的页面,这个时候那个赋值已经这个A机器的sessionID对应的session了,而跑到B机器上面的话,你只访问那个输出的页面,因为没有赋值,肯定不会显示,就是先访问了赋值的页面,输出来了,也和A机器的是不一样的sessionID

编程语言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 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多塌旅册说了。

阅读全文

与php监听session相关的资料

热点内容
文件加密了为啥发不出去了 浏览:457
单片机调节马达 浏览:743
镜花pdf 浏览:610
广西民族大学app忘记密码怎么办 浏览:374
学生服务器是什么意思 浏览:533
如何下载快切app 浏览:723
如何将电脑c盘文件加密 浏览:886
嵌入式为什么linux 浏览:553
c语言编译器属于系统软件 浏览:725
android如何断点调试 浏览:722
图解韩语pdf 浏览:302
sas查各文件夹空间大小 浏览:454
python脚本检查端口 浏览:960
催眠解压视频泡沫 浏览:309
云服务器部署系统 浏览:879
恶意加密别人的文件犯法 浏览:833
汉语语法pdf 浏览:158
词法分析编译原理论文 浏览:271
电脑文件夹还原方法 浏览:534
安卓包如何成为文档 浏览:949