Latest web development tutorials

Sessões CGI do Ruby

CGI :: Session podem ser salvos como utilizador e CGI ambiente de estado de sessão persistente, após as sessões precisam ser fechados, assim você pode garantir que os dados são gravados na memória que, quando a sessão for concluída, precisa de apagar os 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"]){
      "The background of this page"    +
      "changes based on the 'bgcolor'" +
      "each user has in session."      +
      "Last access time: #{lastaccess}"
    }
  }
}

Access "/cgi-bin/test.cgi?bgcolor=red" irá saltar para uma cor de fundo da página específica.

Os dados da sessão existe em um diretório de arquivos temporários no servidor, o parâmetro prefixo especifica o prefixo da sessão, como um prefixo para os arquivos temporários. No servidor de modo que você pode facilmente identificar as diferentes sessões de arquivos temporários.


classe CGI :: Session

CGI :: Session para manter um estado persistente do usuário e do ambiente CGI. Sessão na memória também pode ser no disco rígido.

métodos de classe

Rubi CGI classe Class :: Sessão fornece uma maneira simples de criar sessão:

CGI::Session::new( cgi[, option])

CGI permitir uma nova sessão e retorna o objeto CGI :: Sessão correspondente. Opções de hash pode ser opcional, que podem ser os seguintes valores:

  • session_key: Salvar as chaves de sessão por _session_id padrão.
  • session_id: Unique ID sessão.gerado automaticamente
  • new_session: Se você criar um novo ID de sessão para a sessão atual é verdade.Se for falso, usando a identidade da sessão existente session_id. Se omitido, se disponível, use uma sessão existente, ou a criação de um novo.
  • database_manager: Save sessões de aulas, pode ser CGI :: Session :: FileStore ou CGI :: Session :: MemoryStore.O padrão é FileStore.
  • tmpdir: Para FileStore, um diretório de armazenamento de falha de sessão.
  • prefix: Para FileStore, um prefixo de arquivo de sessão.

Exemplos de métodos

Não. método Descrição
1 []
Retorna o valor da chave. Veja exemplos.
2 [] =
Define o valor da chave. Veja exemplos.
3 excluir
Delete método chama o gerenciamento de banco de dados subjacente. Para FileStore, exclua o arquivo físico que contém a sessão. Para MemoryStore, remova os dados da sessão a partir da memória.
4 atualizar
Chamar o método de atualização da gestão do banco de dados subjacente. Para FileStore, a sessão é gravada no disco. Para MemoryStore nenhum efeito.