Common Gateway Interface(CGI)是一种标准的协议,用于在Web服务器和应用程序之间传递信息。在Ruby中,你可以使用CGI模块来编写CGI脚本,以处理Web请求。以下是一个简单的Ruby CGI脚本示例:

创建 CGI 脚本:
#!/usr/bin/env ruby
require 'cgi'

# 创建CGI对象
cgi = CGI.new

# 设置响应头
cgi.header("content-type" => "text/html")

# 处理HTML输出
cgi.out do
  "<html><body>" \
  "<h1>Hello, CGI World!</h1>" \
  "<p>Request method: #{cgi.request_method}</p>" \
  "<p>Query parameters: #{cgi.params}</p>" \
  "</body></html>"
end

在 Web 服务器上运行:

1. 将脚本保存为 .rb 文件,例如 hello_cgi.rb。
2. 确保脚本有执行权限:chmod +x hello_cgi.rb。
3. 将脚本复制到 Web 服务器的 CGI 目录,通常是 cgi-bin。
4. 访问脚本的URL,例如 http://your_server/cgi-bin/hello_cgi.rb。

处理表单提交:
#!/usr/bin/env ruby
require 'cgi'

# 创建CGI对象
cgi = CGI.new

# 设置响应头
cgi.header("content-type" => "text/html")

# 处理HTML输出
cgi.out do
  "<html><body>" \
  "<h1>Form Submission</h1>" \
  "<form method='post' action='#{cgi.script_name}'>" \
  "Enter your name: <input type='text' name='user_name'>" \
  "<input type='submit' value='Submit'>" \
  "</form>" \
  "<p>#{handle_form_submission(cgi)}</p>" \
  "</body></html>"
end

# 处理表单提交
def handle_form_submission(cgi)
  if cgi.request_method == 'POST'
    user_name = cgi.params['user_name'].first
    return "Hello, #{user_name}!"
  end
  return ''
end

这个例子演示了一个简单的HTML表单,用户可以在其中输入名字。在提交表单后,脚本将显示用户的名字。这是一个基本的CGI脚本,用于处理表单提交。

请注意,在实际应用中,你可能需要考虑安全性,对用户输入进行验证和清理,以防止潜在的安全漏洞。


转载请注明出处:http://www.zyzy.cn/article/detail/6470/Ruby