📄 session.php
字号:
<?php/*** @version $Id: session.php 10381 2008-06-01 03:35:53Z pasamio $* @package Joomla.Framework* @subpackage Table* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.* @license GNU/GPL, see LICENSE.php* Joomla! is free software. This version may have been modified pursuant* to the GNU General Public License, and as distributed it includes or* is derivative of works licensed under the GNU General Public License or* other free or open source software licenses.* See COPYRIGHT.php for copyright notices and details.*/// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();/** * Session table * * @package Joomla.Framework * @subpackage Table * @since 1.0 */class JTableSession extends JTable{ /** * * @var int Primary key */ var $session_id = null; /** * * @var string */ var $time = null; /** * * @var string */ var $userid = null; /** * * @var string */ var $usertype = null; /** * * @var string */ var $username = null; /** * * @var time */ var $gid = null; /** * * @var int */ var $guest = null; /** * * @var int */ var $client_id = null; /** * * @var string */ var $data = null; /** * Constructor * @param database A database connector object */ function __construct( &$db ) { parent::__construct( '#__session', 'session_id', $db ); $this->guest = 1; $this->username = ''; $this->gid = 0; } function insert($sessionId, $clientId) { $this->session_id = $sessionId; $this->client_id = $clientId; $this->time = time(); $ret = $this->_db->insertObject( $this->_tbl, $this, 'session_id' ); if( !$ret ) { $this->setError(strtolower(get_class( $this ))."::". JText::_( 'store failed' ) ."<br />" . $this->_db->stderr()); return false; } else { return true; } } function update( $updateNulls = false ) { $this->time = time(); $ret = $this->_db->updateObject( $this->_tbl, $this, 'session_id', $updateNulls ); if( !$ret ) { $this->setError(strtolower(get_class( $this ))."::". JText::_( 'store failed' ) ." <br />" . $this->_db->stderr()); return false; } else { return true; } } /** * Destroys the pesisting session */ function destroy($userId, $clientIds = array()) { $clientIds = implode( ',', $clientIds ); $query = 'DELETE FROM #__session' . ' WHERE userid = '. $this->_db->Quote( $userId ) . ' AND client_id IN ( '.$clientIds.' )' ; $this->_db->setQuery( $query ); if ( !$this->_db->query() ) { $this->setError( $this->_db->stderr()); return false; } return true; } /** * Purge old sessions * * @param int Session age in seconds * @return mixed Resource on success, null on fail */ function purge( $maxLifetime = 1440 ) { $past = time() - $maxLifetime; $query = 'DELETE FROM '. $this->_tbl .' WHERE ( time < \''. (int) $past .'\' )'; // Index on 'VARCHAR' $this->_db->setQuery($query); return $this->_db->query(); } /** * Find out if a user has a one or more active sessions * * @param int $userid The identifier of the user * @return boolean True if a session for this user exists */ function exists($userid) { $query = 'SELECT COUNT(userid) FROM #__session' . ' WHERE userid = '. $this->_db->Quote( $userid ); $this->_db->setQuery( $query ); if ( !$result = $this->_db->loadResult() ) { $this->setError($this->_db->stderr()); return false; } return (boolean) $result; } /** * Overloaded delete method * * We must override it because of the non-integer primary key * * @access public * @return true if successful otherwise returns and error message */ function delete( $oid=null ) { //if (!$this->canDelete( $msg )) //{ // return $msg; //} $k = $this->_tbl_key; if ($oid) { $this->$k = $oid; } $query = 'DELETE FROM '.$this->_db->nameQuote( $this->_tbl ). ' WHERE '.$this->_tbl_key.' = '. $this->_db->Quote($this->$k); $this->_db->setQuery( $query ); if ($this->_db->query()) { return true; } else { $this->setError($this->_db->getErrorMsg()); return false; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -