`
jacky2007
  • 浏览: 169193 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

php中的实现session监听

    博客分类:
  • PHP
阅读更多

session_set_save_handler

$SESSION_LIFE = get_cfg_var("session.gc_maxlifetime");
//$SESSION_LIFE = 1440;

function sess_open ($save_path, $session_name)
{
    global $sess_save_path, $sess_session_name;

    $sess_save_path = $save_path;
    $sess_session_name = $session_name;
    return(true);
}

function sess_close()
{
    return(true);
}

function sess_read ($key)
{
    global $sess_save_path, $sess_session_name, $SESSION_LIFE, $sqlca;

    $query = "SELECT session_value FROM ts_sessions WHERE session_key = '$key' AND session_expiry > " . time();
    //echo "query='$query'<br>";
    $sqlca->query($query);

    if ($sqlca->next_record())
    {
        return $sqlca->f(0);
    }
    else
    {
        return("");
    }
}

function sess_write ($key, $val)
{
    global $sess_save_path, $sess_session_name, $SESSION_LIFE, $sqlca;


    $expiry = time() + $SESSION_LIFE;
    //$value = addslashes($val);
    $value = $val;

    $sqlca->query("SELECT session_key,session_expiry FROM ts_sessions WHERE session_key='$key'");
    if($sqlca->next_record())
    {
        $query = "UPDATE ts_sessions SET session_value = '$value', session_expiry = $expiry WHERE session_key = '$key' AND session_expiry > " . time();
    }
    else
    {
        $query = "INSERT ts_sessions VALUES('$key', '$value', $expiry)";
    }

    //echo "query='$query'<br>";
    $sqlca->query($query);

    return $sqlca->Query_ID;
}

function sess_update_time ($key)
{
    global $SESSION_LIFE, $sqlca;

    $expiry = time() + $SESSION_LIFE;

    $query = "UPDATE ts_sessions SET session_expiry = $expiry WHERE session_key = '$key'";
    return $sqlca->query($query);
}

function sess_destroy ($key)
{
    global $sqlca;

    $query = "DELETE FROM ts_sessions WHERE session_key = '$key'";
    $sqlca->query($query);

    return $sqlca->Query_ID;
}

function sess_gc ($maxlifetime)
{
    global $sqlca;

    $query = "DELETE FROM ts_sessions WHERE session_expiry < " . time();
    $sqlca->query($query);

    return $sqlca->Query_ID;
}

session_set_save_handler ("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();

 

from http://www.qiuhao.com/PHP10000%5C10276.htm

现在记下,以备日后用到

分享到:
评论

相关推荐

    PHP 实现多服务器session共享之memcache共享

    在PHP开发中,当应用扩展到多服务器环境时,如何实现session共享成为一个关键问题。传统的session存储方式在单服务器上工作良好,但在分布式系统中,由于每个服务器独立存储session,导致用户状态无法跨服务器同步。...

    跨域共享session (实现http跳转https 共享session)

    1. **配置服务器**:根据服务器类型(如Node.js、Java、PHP等)配置session存储,可以是内存、数据库或专门的session存储服务。 2. **处理请求**:当接收到HTTP请求时,服务器生成session ID,并将其设置为Cookie,...

    js操作session例子

    本篇文章将详细讲解如何在JavaScript中实现对Session的操作,以及解决由此带来的挑战。 首先,理解Session的基本概念。Session是服务器端存储的一种会话状态,它可以保存用户在浏览网站时产生的临时数据,例如登录...

    ext session失效 页面跳转

    实现这个功能,开发者通常会在EXT应用中的某个全局或关键位置(如路由控制器)设置一个检查Session的逻辑。例如,每次用户执行操作前,EXT应用都会向服务器发送一个轻量级的请求,询问Session是否有效。如果服务器...

    php+redis实现多台服务器内网存储session并读取示例

    总结起来,通过PHP和Redis的配合,我们可以实现在多台服务器之间的session共享,从而解决负载均衡环境下session丢失的问题。这种方法提高了系统的可扩展性和用户体验。当然,实际应用中可能还需要根据业务需求进行更...

    Laravel 中的事件监听1

    ### Laravel中的事件监听详解 #### 一、引言 在现代Web开发中,事件驱动编程是一种常见的模式。它允许开发者创建灵活且响应迅速的应用程序。Laravel框架通过内置的事件系统支持这一模式,使得开发者可以轻松地定义...

    采用memcache在web集群中实现session的同步会话

    本文主要介绍使用Memcache实现Web集群中session同步的方法。 首先,Memcache是一个高性能的分布式内存对象缓存系统,常用于减少数据库负载,提高访问速度,它非常适合用来存储session数据。在Web集群中使用Memcache...

    Ajax + PHP session制作购物车

    4. 会话管理:验证成功后,在PHP中启动session会话,并将用户信息存储在$_SESSION数组中,以便在整个网站的会话期间识别用户身份。 5. 制作购物车功能:用户可以将商品添加到购物车中,购物车的数据可以存储在...

    基于php使用memcache存储session的详解

    标题中的“基于php使用memcache存储session的详解”是指一种技术实践,即通过PHP语言将Web服务器上的用户session数据存储到memcache缓存系统中,以实现session数据的跨服务器共享,提高系统的可扩展性和性能。...

    laravel中Redis队列监听中断的分析

    在 Laravel 框架中,Redis 被广泛用于实现任务队列,它能有效地处理大量异步任务,提升应用程序的响应速度。然而,在实际操作中,可能会遇到 Redis 队列监听中断的问题,这通常是由于多种原因引起的,包括操作系统...

    PHP和NodeJs开发的应用如何共用Session

    当PHP或Node.js更新Session数据时,会将其存储在Redis中,其他服务可以通过监听Redis事件或定期轮询来获取最新数据。 ### 2. 共享加密解密策略 #### (1) 自定义Session管理 在PHP和Node.js中,可以自定义Session...

    PHP编程语句[文].pdf

    标题提及的文件是关于PHP编程语句的,主要讨论了两个方面:PHP中处理用户Session的管理和使用JavaScript与PHP结合创建动态双下拉菜单。在软件开发领域,这两个知识点是构建交互式Web应用的关键部分。 首先,让我们...

    jquery+ajax+php实现用户登录与退出.zip

    在`logout.php`中,只需要清除session并返回成功信息即可。 ```php &lt;?php session_start(); session_unset(); session_destroy(); echo "success"; ?&gt; ``` 以上就是使用jQuery、Ajax和PHP实现用户登录与退出的基本...

    Laravel开发-session

    在`config/session.php`中,你可以设置会话的配置选项,例如会话的生命周期(默认为2小时)、加密、驱动、存储路径等。例如,如果你想使用数据库存储会话,你需要修改`driver`选项为`'database'`,并确保已创建相应...

    ThinkPHP5+WebSocket+MySQL实现聊天室

    在ThinkPHP5项目中创建WebSocket服务端类,监听指定端口,处理客户端的连接请求,并实现消息的接收和发送。 3. **ThinkPHP5控制器**:在ThinkPHP5框架中,创建一个控制器,处理HTTP请求,包括用户登录、注册、发送...

    JquerySession.js

    除了基本的设置和获取,还可以结合其他jQuery功能,如事件监听、动画效果等,来丰富Session操作的用户体验。例如,在用户登录成功后,使用动画效果展示Session已设置成功。 总之,`jQuerySession.js`是JavaScript...

    php实现滑动验证demo

    在PHP中实现滑动验证,我们可以利用HTML、CSS、JavaScript以及PHP后端技术来创建一个类似支付宝的用户体验。下面我们将深入探讨如何实现这个功能。 首先,滑动验证的基本原理是生成一张带有可移动部分的图片,用户...

    PHP+jQuery+Ajax实现用户登录与退出

    在`global.js`中,我们可以使用jQuery库来监听表单的提交事件。当用户点击登录按钮时,阻止表单的默认提交行为,而是通过Ajax调用发送数据到服务器。jQuery的`.ajax()`方法是实现这一目标的关键,它允许我们异步地...

    Google Map API 结合PHP实现登录地图定位

    【标题】"Google Map API 结合PHP实现登录地图定位"主要涵盖了两个核心概念:Google Maps API和PHP的集成应用,以及用户登录后的地理位置服务。首先,Google Maps API是Google提供的一项服务,允许开发者在其网站上...

    小程序登录获取用户信息 php服务端

    `openid`是用户在小程序中的唯一标识,`session_key`则用于对敏感数据进行加解密,确保数据的安全性。 1. **小程序端的登录操作**: - 用户打开小程序,点击登录按钮。 - 小程序调用`wx.login()`方法,获取登录`...

Global site tag (gtag.js) - Google Analytics