Ruby CGI方法学习笔记
什么是CGI?
CGI(通用网关接口,Common Gateway Interface)是一种允许Web服务器与程序或脚本进行交互的标准协议。CGI程序可以用任何编程语言编写,如Ruby。
CGI类
Ruby中的cgi类是一个用于处理CGI请求的库。它提供了解析HTTP请求、生成HTTP响应、设置HTTP头等功能。以下是一些常用的CGI方法:
CGI#initialize
该方法用于初始化CGI类实例,并解析HTTP请求。示例代码如下:
rubyCopy Coderequire 'cgi'
cgi = CGI.new
puts cgi.header
CGI#params
该方法返回一个包含所有HTTP请求参数的哈希表。可以通过哈希表的键获取参数值,例如:
rubyCopy Coderequire 'cgi'
cgi = CGI.new
puts cgi.params['username']
puts cgi.params['password']
CGI#header
该方法用于生成HTTP响应头。示例代码如下:
rubyCopy Coderequire 'cgi'
cgi = CGI.new
puts cgi.header('type' => 'text/html', 'charset' => 'utf-8')
CGI#out
该方法用于生成HTTP响应正文。示例代码如下:
rubyCopy Coderequire 'cgi'
cgi = CGI.new
cgi.out do
'<html><body>Hello World!</body></html>'
end
CGI实例
以下是一个使用Ruby CGI类处理HTML表单的示例:
rubyCopy Coderequire 'cgi'
cgi = CGI.new
puts cgi.header('type' => 'text/html', 'charset' => 'utf-8')
if cgi.request_method == 'POST'
username = cgi.params['username'][0]
password = cgi.params['password'][0]
if username == 'admin' && password == 'admin'
puts 'Welcome, admin!'
else
puts 'Invalid username or password.'
end
end
puts <<~HTML
<form method="post">
<label>Username</label>
<input type="text" name="username"><br>
<label>Password</label>
<input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
HTML
这个示例提供了一个简单的登录表单,使用POST方法提交表单数据。如果用户名和密码分别为"admin"和"admin",则输出“欢迎,管理员!”否则输出“无效的用户名或密码。”