本文整理汇总了PHP中xPDO::startSession方法的典型用法代码示例。如果您正苦于以下问题:PHP xPDO::startSession方法的具体用法?PHP xPDO::startSession怎么用?PHP xPDO::startSession使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xPDO
的用法示例。
在下文中一共展示了xPDO::startSession方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addSessionContext
/**
* Adds a new context to the user session context array.
*
* @access public
* @param string $context The context to add to the user session.
*/
public function addSessionContext($context)
{
if (!$this->xpdo->startSession()) {
$this->xpdo->log(xPDO::LOG_LEVEL_ERROR, "Attempt to start a session failed", '', __METHOD__, __FILE__, __LINE__);
return;
}
if (!empty($context)) {
$this->getSessionContexts();
session_regenerate_id(true);
$this->getOne('Profile');
if ($this->Profile && $this->Profile instanceof modUserProfile) {
$ua =& $this->Profile;
if ($ua && !isset($this->sessionContexts[$context]) || $this->sessionContexts[$context] != $this->get('id')) {
$ua->set('failedlogincount', 0);
$ua->set('logincount', $ua->logincount + 1);
$ua->set('lastlogin', $ua->thislogin);
$ua->set('thislogin', time());
$ua->set('sessionid', session_id());
$ua->save();
}
}
$this->sessionContexts[$context] = $this->get('id');
$_SESSION['modx.user.contextTokens'] = $this->sessionContexts;
if (!isset($_SESSION["modx.{$context}.user.token"])) {
$_SESSION["modx.{$context}.user.token"] = $this->generateToken($context);
}
} else {
$this->xpdo->log(xPDO::LOG_LEVEL_ERROR, "Attempt to login to a context with an empty key", '', __METHOD__, __FILE__, __LINE__);
}
}