本文整理汇总了PHP中ADODB_Session::table方法的典型用法代码示例。如果您正苦于以下问题:PHP ADODB_Session::table方法的具体用法?PHP ADODB_Session::table怎么用?PHP ADODB_Session::table使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ADODB_Session
的用法示例。
在下文中一共展示了ADODB_Session::table方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
public static function init()
{
if (!wbCore::isFuncDisabled('ini_set')) {
// PHP configuration variables
// Stop adding SID to URLs
ini_set('session.use_trans_sid', 0);
// User-defined save handler
ini_set('session.save_handler', 'user');
// How to store data
ini_set('session.serialize_handler', 'php');
// Use cookie to store the session ID
ini_set('session.use_cookies', 1);
// Name of our cookie
ini_set('session.name', 'WEBISID');
$path = wbServer::getBaseURI();
if (empty($path)) {
$path = '/';
}
// Lifetime of our cookie. Session lasts set number of days
$lifetime = wbConfig::get('Session.Duration') * 86400;
ini_set('session.cookie_lifetime', $lifetime);
// Cookie path
// this should be customized for multi-server setups wanting to share
// sessions
ini_set('session.cookie_path', $path);
// Garbage collection
ini_set('session.gc_probability', 1);
// Inactivity timeout for user sessions
ini_set('session.gc_maxlifetime', wbConfig::get('Session.InactivityTimeout') * 60);
// Auto-start session
ini_set('session.auto_start', 1);
}
include_once 'lib/adodb/session/adodb-session2.php';
$GLOBALS['ADODB_SESS_CONN'] =& wbDB::getConn();
ADODB_Session::table(wbConfig::get('DB.prefix') . '_sessions');
session_start();
}
示例2: gc
function gc($maxlifetime)
{
$conn =& ADODB_Session::_conn();
$debug = ADODB_Session::debug();
$expire_notify = ADODB_Session::expireNotify();
$optimize = ADODB_Session::optimize();
$sync_seconds = ADODB_Session::syncSeconds();
$table = ADODB_Session::table();
if (!$conn) {
return false;
}
$time = time();
$binary = $conn->dataProvider === 'mysql' ? '/*! BINARY */' : '';
if ($expire_notify) {
reset($expire_notify);
$fn = next($expire_notify);
$savem = $conn->SetFetchMode(ADODB_FETCH_NUM);
$sql = "SELECT expireref, sesskey FROM {$table} WHERE expiry < {$time}";
$rs =& $conn->Execute($sql);
ADODB_Session::_dumprs($rs);
$conn->SetFetchMode($savem);
if ($rs) {
$conn->StartTrans();
$keys = array();
while (!$rs->EOF) {
$ref = $rs->fields[0];
$key = $rs->fields[1];
$fn($ref, $key);
$del = $conn->Execute("DELETE FROM {$table} WHERE sesskey=" . $conn->Param('0'), array($key));
$rs->MoveNext();
}
$rs->Close();
$conn->CompleteTrans();
}
} else {
if (1) {
$sql = "SELECT sesskey FROM {$table} WHERE expiry < {$time}";
$arr =& $conn->GetAll($sql);
foreach ($arr as $row) {
$sql2 = "DELETE FROM {$table} WHERE sesskey=" . $conn->Param('0');
$conn->Execute($sql2, array($row[0]));
}
} else {
$sql = "DELETE FROM {$table} WHERE expiry < {$time}";
$rs =& $conn->Execute($sql);
ADODB_Session::_dumprs($rs);
if ($rs) {
$rs->Close();
}
}
if ($debug) {
ADOConnection::outp("<p><b>Garbage Collection</b>: {$sql}</p>");
}
}
// suggested by Cameron, "GaM3R" <gamr@outworld.cx>
if ($optimize) {
$driver = ADODB_Session::driver();
if (preg_match('/mysql/i', $driver)) {
$sql = "OPTIMIZE TABLE {$table}";
}
if (preg_match('/postgres/i', $driver)) {
$sql = "VACUUM {$table}";
}
if (!empty($sql)) {
$conn->Execute($sql);
}
}
if ($sync_seconds) {
$sql = 'SELECT ';
if ($conn->dataProvider === 'oci8') {
$sql .= "TO_CHAR({$conn->sysTimeStamp}, 'RRRR-MM-DD HH24:MI:SS')";
} else {
$sql .= $conn->sysTimeStamp;
}
$sql .= " FROM {$table}";
$rs =& $conn->SelectLimit($sql, 1);
if ($rs && !$rs->EOF) {
$dbts = reset($rs->fields);
$rs->Close();
$dbt = $conn->UnixTimeStamp($dbts);
$t = time();
if (abs($dbt - $t) >= $sync_seconds) {
$msg = __FILE__ . ": Server time for webserver {$_SERVER['HTTP_HOST']} not in synch with database: " . " database={$dbt} ({$dbts}), webserver={$t} (diff=" . abs($dbt - $t) / 60 . ' minutes)';
error_log($msg);
if ($debug) {
ADOConnection::outp("<p>{$msg}</p>");
}
}
}
}
return true;
}
示例3: gc
static function gc($maxlifetime)
{
$conn = ADODB_Session::_conn();
$debug = ADODB_Session::debug();
$expire_notify = ADODB_Session::expireNotify();
$optimize = ADODB_Session::optimize();
$table = ADODB_Session::table();
if (!$conn) {
return false;
}
$debug = ADODB_Session::debug();
if ($debug) {
$conn->debug = 1;
$COMMITNUM = 2;
} else {
$COMMITNUM = 20;
}
//assert('$table');
$time = $conn->OffsetDate(-$maxlifetime / 24 / 3600, $conn->sysTimeStamp);
$binary = $conn->dataProvider === 'mysql' ? '/*! BINARY */' : '';
if ($expire_notify) {
reset($expire_notify);
$fn = next($expire_notify);
} else {
$fn = false;
}
$savem = $conn->SetFetchMode(ADODB_FETCH_NUM);
$sql = "SELECT expireref, sesskey FROM {$table} WHERE expiry < {$time} ORDER BY 2";
# add order by to prevent deadlock
$rs = $conn->SelectLimit($sql, 1000);
if ($debug) {
ADODB_Session::_dumprs($rs);
}
$conn->SetFetchMode($savem);
if ($rs) {
$tr = $conn->hasTransactions;
if ($tr) {
$conn->BeginTrans();
}
$keys = array();
$ccnt = 0;
while (!$rs->EOF) {
$ref = $rs->fields[0];
$key = $rs->fields[1];
if ($fn) {
$fn($ref, $key);
}
$del = $conn->Execute("DELETE FROM {$table} WHERE sesskey=" . $conn->Param('0'), array($key));
$rs->MoveNext();
$ccnt += 1;
if ($tr && $ccnt % $COMMITNUM == 0) {
if ($debug) {
echo "Commit<br>\n";
}
$conn->CommitTrans();
$conn->BeginTrans();
}
}
$rs->Close();
if ($tr) {
$conn->CommitTrans();
}
}
// suggested by Cameron, "GaM3R" <gamr@outworld.cx>
if ($optimize) {
$driver = ADODB_Session::driver();
if (preg_match('/mysql/i', $driver)) {
$sql = "OPTIMIZE TABLE {$table}";
}
if (preg_match('/postgres/i', $driver)) {
$sql = "VACUUM {$table}";
}
if (!empty($sql)) {
$conn->Execute($sql);
}
}
return true;
}
示例4: gc
function gc($maxlifetime)
{
$conn =& ADODB_Session::_conn();
$debug = ADODB_Session::debug();
$expire_notify = ADODB_Session::expireNotify();
$optimize = ADODB_Session::optimize();
$table = ADODB_Session::table();
if (!$conn) {
return false;
}
//assert('$table');
$time = $conn->sysTimeStamp;
$binary = $conn->dataProvider === 'mysql' ? '/*! BINARY */' : '';
if ($expire_notify) {
reset($expire_notify);
$fn = next($expire_notify);
$savem = $conn->SetFetchMode(ADODB_FETCH_NUM);
$sql = "SELECT expireref, sesskey FROM {$table} WHERE expiry < {$time}";
$rs =& $conn->Execute($sql);
ADODB_Session::_dumprs($rs);
$conn->SetFetchMode($savem);
if ($rs) {
$conn->StartTrans();
$keys = array();
while (!$rs->EOF) {
$ref = $rs->fields[0];
$key = $rs->fields[1];
$fn($ref, $key);
$del = $conn->Execute("DELETE FROM {$table} WHERE sesskey=" . $conn->Param('0'), array($key));
$rs->MoveNext();
}
$rs->Close();
$conn->CompleteTrans();
}
} else {
if (0) {
$sql = "SELECT sesskey FROM {$table} WHERE expiry < {$time}";
$arr =& $conn->GetAll($sql);
foreach ($arr as $row) {
$sql2 = "DELETE FROM {$table} WHERE sesskey=" . $conn->Param('0');
$conn->Execute($sql2, array(reset($row)));
}
} else {
$sql = "DELETE FROM {$table} WHERE expiry < {$time}";
$rs =& $conn->Execute($sql);
ADODB_Session::_dumprs($rs);
if ($rs) {
$rs->Close();
}
}
if ($debug) {
ADOConnection::outp("<p><b>Garbage Collection</b>: {$sql}</p>");
}
}
// suggested by Cameron, "GaM3R" <gamr@outworld.cx>
if ($optimize) {
$driver = ADODB_Session::driver();
if (preg_match('/mysql/i', $driver)) {
$sql = "OPTIMIZE TABLE {$table}";
}
if (preg_match('/postgres/i', $driver)) {
$sql = "VACUUM {$table}";
}
if (!empty($sql)) {
$conn->Execute($sql);
}
}
return true;
}
示例5: adodb_session_regenerate_id
function adodb_session_regenerate_id()
{
$conn = ADODB_Session::_conn();
if (!$conn) {
return false;
}
$old_id = session_id();
if (function_exists('session_regenerate_id')) {
session_regenerate_id();
} else {
session_id(md5(uniqid(rand(), true)));
$ck = session_get_cookie_params();
setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
//@session_start();
}
$new_id = session_id();
$ok = $conn->Execute('UPDATE ' . ADODB_Session::table() . ' SET sesskey=' . $conn->qstr($new_id) . ' WHERE sesskey=' . $conn->qstr($old_id));
/* it is possible that the update statement fails due to a collision */
if (!$ok) {
session_id($old_id);
if (empty($ck)) {
$ck = session_get_cookie_params();
}
setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
return false;
}
return true;
}
示例6: define
define('ADODB_SESSION_OPTIMIZE', $optimize);
}
define('ADODB_SESSION_SYNCH_SECS', $sync_seconds);
if (class_exists('ADODB_Session')) {
ADODB_Session::clob($clob);
ADODB_Session::dataFieldName($data_field_name);
ADODB_Session::database($database);
ADODB_Session::debug($debug);
ADODB_Session::driver($driver);
ADODB_Session::filter($filters);
ADODB_Session::host($host);
ADODB_Session::lifetime($lifetime);
ADODB_Session::optimize($optimize);
ADODB_Session::password($password);
ADODB_Session::syncSeconds($sync_seconds);
ADODB_Session::table($table);
ADODB_Session::user($user);
}
function NotifyFn($var, $sesskey)
{
echo "NotifyFn({$var}, {$sesskey}) called<br />\n";
}
if ($expire_notify) {
$ADODB_SESSION_EXPIRE_NOTIFY = array('debug', 'NotifyFn');
if (class_exists('ADODB_Session')) {
ADODB_Session::expireNotify(array('debug', 'NotifyFn'));
}
}
session_start();
$register = true;
if (!empty($_REQUEST['submit'])) {
示例7: elseif
}
// is session data stored in DB or in filesystem?
if ($gBitSystem->isFeatureActive('site_store_session_db') && !empty($gBitDbType)) {
if (file_exists(EXTERNAL_LIBS_PATH . 'adodb/session/adodb-session.php')) {
include_once EXTERNAL_LIBS_PATH . 'adodb/session/adodb-session.php';
} elseif (file_exists(UTIL_PKG_PATH . 'adodb/session/adodb-session.php')) {
include_once UTIL_PKG_PATH . 'adodb/session/adodb-session.php';
}
if (class_exists('ADODB_Session')) {
ADODB_Session::dataFieldName('session_data');
ADODB_Session::driver($gBitDbType);
ADODB_Session::host($gBitDbHost);
ADODB_Session::user($gBitDbUser);
ADODB_Session::password($gBitDbPassword);
ADODB_Session::database($gBitDbName);
ADODB_Session::table(BIT_DB_PREFIX . 'sessions');
ini_set('session.save_handler', 'user');
}
}
session_name(BIT_SESSION_NAME);
if ($gBitSystem->isFeatureActive('users_remember_me')) {
session_set_cookie_params($gBitSystem->getConfig('site_session_lifetime'), $gBitSystem->getConfig('cookie_path', BIT_ROOT_URL), $gBitSystem->getConfig('cookie_domain', ''));
} else {
session_set_cookie_params($gBitSystem->getConfig('site_session_lifetime'), BIT_ROOT_URL, '');
}
// just use a simple COOKIE (unique random string) that is linked to the users_cnxn table.
// This way, nuking rows in the users_cnxn table can log people out and is much more reliable than SESSIONS
global $gShellScript;
if (empty($gShellScript)) {
if (session_status() == PHP_SESSION_NONE) {
session_start();