English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CGI::Session은 사용자와 CGI 환경에서 지속적인 세션 상태를 저장할 수 있습니다. 세션이 사용된 후에는 닫아야 하며, 이렇게 하면 데이터가 저장된 저장소에 쓰일 수 있으며, 세션이 완료되면 데이터를 제거해야 합니다.
#!/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}" } } }
접근 "/cgi-bin/test.cgi?bgcolor=red"은 지정된 배경색의 페이지로 이동합니다.
세션 데이터는 서버의 임시 파일 디렉토리에 존재하며, prefix 매개변수는 세션의 프리픽스를 지정하여 임시 파일의 프리픽스로 사용됩니다. 이렇게 하면 서버에서 다른 세션 임시 파일을 쉽게 인식할 수 있습니다.
CGI::Session은 사용자와 CGI 환경의 지속적인 상태를 유지합니다. 세션이 메모리에 있을 수도 있고 하드디스크에 있을 수 있습니다.
Ruby 클래스 Class CGI::Session은 세션을 생성하는 간단한 메서드를 제공합니다:
CGI::Session::new( cgi[, option])
새로운 CGI 세션을 활성화하고相应的 CGI::Session 객체를 반환합니다. 선택 사항인 해시 옵션은 다음 값 중 하나일 수 있습니다:
session_key: 세션을 저장하는 키 이름. 기본적으로 _session_id입니다.
session_id: 유일한 세션 ID. 자동 생성됩니다.
new_session: true라면 현재 세션에 새로운 Session id를 생성합니다. false라면 session_id를 통해 존재하는 세션을 사용합니다. 이 매개변수를 생략하면, 사용 가능하다면 기존의 세션을 사용하며, 사용할 수 없다면 새로운 세션을 생성합니다.
database_manager: sessions를 저장하는 클래스로, CGI::Session::FileStore 또는 CGI::Session::MemoryStore가 될 수 있습니다. 기본적으로 FileStore입니다.
tmpdir: FileStore에 대해서는 세션의 오류 저장 디렉토리로 사용됩니다.
prefix: FileStore에 대해서는 세션 파일의 접두사로 사용됩니다.
순번 | 메서드 설명 |
---|---|
1 | [ ] 주어진 키의 값을 반환합니다. 예제를 참조하세요. |
2 | [ ]= 주어진 키의 값을 설정합니다. 예제를 참조하세요. |
3 | delete 기본 데이터베이스 관리의 삭제 메서드를 호출합니다. FileStore에 대해서는 세션을 포함한 물리 파일을 삭제하고, MemoryStore에 대해서는 메모리에서 세션 데이터를 제거합니다. |
4 | update 기본 데이터베이스 관리의 업데이트 메서드를 호출합니다. FileStore에 대해서는 세션을 디스크에 쓰고, MemoryStore에 대해서는 효과가 없습니다. |