Ruby CGI方法学习笔记

什么是CGI?

CGI(通用网关接口,Common Gateway Interface)是一种允许Web服务器与程序或脚本进行交互的标准协议。CGI程序可以用任何编程语言编写,如Ruby。

CGI类

Ruby中的cgi类是一个用于处理CGI请求的库。它提供了解析HTTP请求、生成HTTP响应、设置HTTP头等功能。以下是一些常用的CGI方法:

CGI#initialize

该方法用于初始化CGI类实例,并解析HTTP请求。示例代码如下:

rubyCopy Code
require 'cgi' cgi = CGI.new puts cgi.header

CGI#params

该方法返回一个包含所有HTTP请求参数的哈希表。可以通过哈希表的键获取参数值,例如:

rubyCopy Code
require 'cgi' cgi = CGI.new puts cgi.params['username'] puts cgi.params['password']

CGI#header

该方法用于生成HTTP响应头。示例代码如下:

rubyCopy Code
require 'cgi' cgi = CGI.new puts cgi.header('type' => 'text/html', 'charset' => 'utf-8')

CGI#out

该方法用于生成HTTP响应正文。示例代码如下:

rubyCopy Code
require 'cgi' cgi = CGI.new cgi.out do '<html><body>Hello World!</body></html>' end

CGI实例

以下是一个使用Ruby CGI类处理HTML表单的示例:

rubyCopy Code
require '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",则输出“欢迎,管理员!”否则输出“无效的用户名或密码。”