| 2008-06-16 17:50:34 | Ответить |
|---|---|
|
Dracula Адрес: Сообщений: 23 Регистр: 2008-05-31 его блог 0 сообщ. |
Ruby CGI - CGI::Session |
|
Пример работы с сессиями!
-------------------------- sessclass.rb -------------------------- #!c:/ruby/bin/ruby.exe $kcode = "windows-1251" require 'cgi' require 'cgi/session' class CGI::Session # create new session def self.create(request, options = {}) session = self.read(request, options) session.delete if session options['new_session'] = true CGI::Session.new(request, options) end # read session if exist def self.read(request, options = {}) options['new_session'] = false begin CGI::Session.new(request, options) rescue ArgumentError # if no old session end end end class CGI attr_accessor :session alias :initialize_orginal :initialize def initialize(*args) initialize_orginal(*args) @session = CGI::Session.read(self) end def create_session @session = CGI::Session.create(self) end def delete_session @session.delete if @session @session = nil end def session_id @session ? @session.session_id : '' end end |
|
| cgi, create session, delete session, ruby, session |
| 2008-06-16 17:54:13 | Ответить |
|---|---|
|
Dracula Адрес: Сообщений: 23 Регистр: 2008-05-31 его блог 0 сообщ. |
RE: Ruby CGI - CGI::Session |
|
---------------------------
index.rb --------------------------- #!c:/ruby/bin/ruby.exe $kcode = "windows-1251" require 'cgi' require 'cgi/session' require 'sessclass.rb' cgi = CGI.new message = [] message << "прочитана сессия. ID: #{cgi.session_id}" if cgi.session if cgi['session'] == 'create' cgi.create_session message << "создана сессия. ID: #{cgi.session_id}" cgi.session['counter'] = "" elsif cgi['session'] == 'delete' message << "удалена сессия. ID: #{cgi.session_id}" cgi.delete_session elsif cgi.session cgi.session['counter'] << "+" message << "счетчик: #{cgi.session['counter']}" else message << "у вас нет сессии." end puts cgi.header puts %Q|*html**body*| puts %Q|*a href="?"*обновить*/a*| puts %Q|*a href="?session=create"*создать*/a*| puts %Q|*a href="?session=delete"*удалить*/a*| puts %Q|*pre style="border: solid 1px #888; padding: 1em"*#{message.join("\n")}*/pre*| puts %Q|*/body**/html*| # звездочки(*) замените на теги (>) |
|
| cgi, create session, delete session, ruby, session |