public static function write($id, $data) { if (is_null(self::$context)) { self::initialize(); } if (strlen($id) < 32) { return false; } $userid = Acl::getIdentity('textcube'); if (empty($userid)) { $userid = Acl::getIdentity('openid') ? SESSION_OPENID_USERID : ''; } if (empty($userid)) { $userid = 'null'; } $data = POD::escapeString($data); $server = POD::escapeString($_SERVER['HTTP_HOST']); $request = POD::escapeString(substr($_SERVER['REQUEST_URI'], 0, 255)); $referer = isset($_SERVER['HTTP_REFERER']) ? POD::escapeString(substr($_SERVER['HTTP_REFERER'], 0, 255)) : ''; $timer = Timer::getMicroTime() - self::$sessionMicrotime; $current = Timestamp::getUNIXtime(); $result = self::query('count', "UPDATE " . self::$context->getProperty('database.prefix') . "Sessions \n\t\t\t\tSET userid = {$userid}, privilege = '{$data}', server = '{$server}', request = '{$request}', referer = '{$referer}', timer = {$timer}, updated = " . $current . " \n\t\t\t\tWHERE id = '{$id}' AND address = '{$_SERVER['REMOTE_ADDR']}'"); if ($result && $result == 1) { @POD::commit(); return true; } return false; }