+1

Criando Sessions com a Biblioteca ADODB

criado por Miguel Garcia em 21/01/2003 12:38am
ADODB é uma biblioteca escrita em PHP que pode ser utilizada de várias maneiras em conjunto com os softwares que utilizam esta linguagem de programação. Muitos sistemas se utilizam desta biblioteca para obter mais performance, maleabilidade na busca de dados de tabelas, rapidez, cacheamento de páginas e variáveis, extração de dados de tabelas e mostrá-las em tabelas HTML, e assim por diante.

Em meu sistema utilizo ADODB como cacheamento de variáveis, cacheamento de Blocos, módulos e páginas em PHP. Utilizo o Postnuke (aliás com ele já vem implementadas algumas rotinas em ADODB que automaticamente manuseiam tabelas de banco de dados).

Bem, vamos dar uma pequena introdução de como criar sessions utilizando ADODB e banco de dados. Quem quiser obter mais informações à respeito dessa biblioteca, visite a página da mesma em http://php.weblogs.com/ADOdb

Sessões em PHP utilizando ADODB

Você pode criar Sessions persistentes e não-persistentes com o ADODB. O PHP4 já vem com inúmeras vantagens, e uma das mais populares e excelentes é o manuseio de variáveis em sessões.

Para se utilizar variáveis em sessões, simplesmente implementamos o comando session_start() no início da home page, antes do cabeçalho HTTP ser enviado. Então para as variáveis que você quer utilizar nas sessões por um determinado período de tempo, implementamos o comando session_register($nome_nome_da_variável). Por padrão as sessões se utilizam de cookies.

Por padrão as variáveis de sessões são armazenadas em arquivos, mas o ideal seria armazená-las num banco de dados.

Para implementação, você precisa ter a biblioteca ADODB (290 Kb de tamanho) que pode ser baixada em http://php.weblogs.com/ADOdb . Crie um diretório para instalar, e ele cria automaticamente os sub-diretórios.

Instalação:

Crie um banco de dados chamado sessions ( ou qualquer outro nome ) com a seguinte estrutura:

create table sessions (
    SESSKEY char(32) not null,
    EXPIRY int(11) unsigned not null,
    DATA text not null,
    primary key (SESSKEY), 
    key (EXPIRY) 
)

Depois vá em adodb_session.php e modifique as variáveis:

<?php
$ADODB_SESSION_DRIVER = 'Banco de dados..ex: Mysql, Oracle';
$ADODB_SESSION_CONNECT = 'Servidor..Pode ser o IP';
$ADODB_SESSION_USER = 'user';
$ADODB_SESSION_PWD = 'password';
$ADODB_SESSION_DB = 'nome do banco que você criou';
?>

Modifique no PHP.INI a variável para: session.save_handler=user.

Utilização:

Este é um exemplo de sua utilização. Se você der um refresh na página, vai ver o incremento da variável.

<?php
global $HTTP_SESSION_VARS;
include('adodb.inc.php');
include('adodb-session.php');
session_start();
session_register('AVAR');
$HTTP_SESSION_VARS['AVAR'] += 1;
print "<p>variable={$HTTP_SESSION_VARS['AVAR']}</p>";
?>

Abaixo está um exemplo de session não-persistente:

<?php
GLOBAL $HTTP_SESSION_VARS;
include('adodb.inc.php');
include('adodb-session.php');
adodb_session_open(false,false,false);
session_start();
session_register('AVAR');
$HTTP_SESSION_VARS['AVAR'] += 1;
print "<p>\$HTTP_SESSION_VARS['AVAR']={$HTTP_SESSION_VARS['AVAR']}</p>";
?>

Então, nas sessões você pode registrar as variáveis que você quiser do seu banco de dados.

** Texto original pode ser visto em http://php.weblogs.com/adodb-sessions

Abraços,
Mike

Comentários:

Mostrando 1 - 4 de 4 comentários
Willian Silva disse:
Cade, o ADODB? Eu mesmo vir somente váriáveis.
04/07/2006 12:38am (~10 anos atrás)

Opa, em pesquisa também sobre ADODB, encontrei dificulades em acessar o arquivos para download no endereço informado. Mas. . .consegui achá-lo numa ponte que a Source Forge está fazendo com todo material de categoria Open Source.
Link para download da bib ADODB:

http://ufpr.dl.sourceforge.net/sourceforge/adodb/adodb465.zip

Abraço!!
28/07/2005 11:33pm (~11 anos atrás)

Muito obm seu artigo, estou com um problema para instalar um jogo (blacknova), pede o adob ma nao traz muitos detalhes, diz pra baixar no mesmo link que voce fornece (http://php.weblogs.com/ADOdb) mas esse site ta fora do ar, será que poderia me indicar onde baixar ou me enviar por mail? Agradeço se alguem puder me ajudar.
13/02/2005 9:01pm (~11 anos atrás)

Olá Mike,
Já havia comentado sobre este artigo no forum, realmente a ADODB é muito útil.
No meu caso tentei utilizar este método mas como contrato um host e o padrão do PHP.INI para: session.save_handler é files, não rolou. Tentei alterar com ini_set("session.save_handler","user") mas senti uma certa instabilidade.
Mas tudo bem. O conceito é bom e vale a pena ler o artigo do Ying Zhang para entender para que se aplica. http://phpbuilder.com/columns/ying20000602.php3?page=1
BobFrank
21/01/2003 6:51pm (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)