【发布时间】:2011-03-15 19:02:32
【问题描述】:
有不同的方式来运行 PHP 代码。例如用户发起的重新加载和用户发起的 ajax 请求。
在这些运行之间保持状态的最佳方式是什么?
【问题讨论】:
-
您的 AJAX 处理程序是否加载(或直接命中)index.php?如果这是实例化对象的唯一位置,并且 AJAX 调用不会以任何方式调用 index.php,则不会为您的 AJAX 调用创建对象。
标签: php
有不同的方式来运行 PHP 代码。例如用户发起的重新加载和用户发起的 ajax 请求。
在这些运行之间保持状态的最佳方式是什么?
【问题讨论】:
标签: php
PHP 确实认为它是单独运行的。两件事:
$obj_ses = new session();
$obj_ses->activate('email', $this->_protected['email']);
会话 ID 在该特定用户的所有页面视图中都是相同的,因此在第二个 sn-p 中创建新 session() 仍将引用您在第一个 sn-p 中启动的同一会话。
下面是静态实现的样子:
// class names should be camel-cased
class SessionManager
{
protected static $session_id = null;
public static function start()
{
self::$session_id = session_start();
}
// ... and so on
}
// to use
SessionManager::start();
SessionManager::activate('email', $email);
这应该就是你所需要的。当然有很多方法可以做到这一点,但这应该让你开始:)
【讨论】: