#!/usr/bin/env ruby
require 'cgi'
require 'cgi/session'
cgi = CGI.new
# 创建一个CGI Session
session = CGI::Session.new(cgi)
# 获取或设置Session中的值
user_name = cgi['user_name']
if user_name != ''
session['user_name'] = user_name
else
user_name = session['user_name']
end
# 设置Content-Type头部
cgi.header['content-type'] = 'text/html'
# 输出HTML页面
cgi.out do
cgi.html do
cgi.head do
cgi.title { 'Ruby CGI Sessions Example' }
end
cgi.body do
cgi.h1 { 'Ruby CGI Sessions Example' }
if user_name != ''
cgi.p { "Hello, #{user_name}!" }
cgi.p { 'Your name is stored in a session.' }
else
cgi.p { 'Enter your name:' }
cgi.form('method' => 'post') do
cgi.text_field('user_name') +
cgi.br +
cgi.submit
end
end
end
end
end
这个示例与前面的Cookies示例类似,但是使用了CGI::Session来处理会话数据。在这个示例中,user_name被存储在会话中,而不是使用Cookie。会话数据将在服务器端进行存储,而不是在客户端。
请注意,这只是一个基本示例,实际应用中可能需要更复杂的逻辑和安全性措施。确保在生产环境中采取适当的安全措施,例如使用HTTPS来保护会话数据。
转载请注明出处:http://www.zyzy.cn/article/detail/6473/Ruby