English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CGI::Session pode salvar o estado de sessão persistente do usuário e do ambiente CGI, após o uso da sessão, deve ser fechada para garantir que os dados sejam escritos no armazenamento. Quando a sessão for concluída, você precisa deletar esses dados.
#!/usr/bin/ruby require 'cgi' require 'cgi/session' cgi = CGI.new("html4") sess = CGI::Session.new(cgi, "session_key" => "a_test", "prefix" => "rubysess.") lastaccess = sess["lastaccess"].to_s sess["lastaccess"] = Time.now if cgi['bgcolor'][0] =~ /[a-z]/ sess["bgcolor"] = cgi['bgcolor'] end cgi.out{ cgi.html { cgi.body ("bgcolor" => sess["bgcolor"]){ "O fundo desta página" + "mudanças baseadas no 'bgcolor'" + "cada usuário tem na sessão." + "Último tempo de acesso: #{lastaccess}" } } }
Acessar "/cgi-bin/test.cgi?bgcolor=red" redirecionará para a página com a cor de fundo especificada.
Os dados da sessão existem no diretório temporário do servidor, o parâmetro prefix especifica o prefixo da sessão, que será o prefixo dos arquivos temporários. Dessa forma, você pode identificar facilmente diferentes arquivos temporários de sessão no servidor.
CGI::Session mantém o estado persistente do usuário com o ambiente CGI. A sessão pode estar na memória ou no disco rígido.
A classe Ruby Class CGI::Session fornece métodos simples para criar sessão:
CGI::Session::new( cgi[, option])
Ativa uma nova sessão CGI e retorna o objeto CGI::Session correspondente. As opções podem ser um hash opcional, podendo ser os seguintes valores:
session_key: Nome da chave para salvar a sessão. O padrão é _session_id.
session_id: ID de sessão único. Gerado automaticamente
new_session: Se for true, criará um novo Session id para a sessão atual. Se for false, usará o session_id para identificar a sessão existente. Se o parâmetro for omitido, se disponível, usará a sessão existente; caso contrário, criará uma nova.
database_manager: Classe usada para armazenar sessões, pode ser CGI::Session::FileStore ou CGI::Session::MemoryStore. O padrão é FileStore.
tmpdir: Para FileStore, o diretório de armazenamento de erro da sessão.
prefix: Para FileStore, o prefixo do arquivo de sessão.
Número de Ordem | Descrição do Método |
---|---|
1 | [ ] Retorna o valor da chave fornecida. Veja os exemplos. |
2 | [ ]= Define o valor da chave fornecida. Veja os exemplos. |
3 | delete Chama o método de exclusão de gerenciamento de banco de dados subjacente. Para FileStore, exclui o arquivo físico que contém a sessão. Para MemoryStore, remove os dados da sessão da memória. |
4 | update Chama o método de gerenciamento de banco de dados subjacente. Para FileStore, escreve a sessão no disco. Para MemoryStore, não tem efeito. |