Perl CGI编程

Perl CGI编程

在Perl中,CGI(Common Gateway Interface)是一个通过网络请求执行脚本的协议。它是一套规则和标准,定义了网络服务器和自定义脚本之间的信息交换方式。早些时候,像Perl这样的脚本语言被用来编写CGI应用程序。而且,由HTTP服务器调用的CGI代码被称为CGI脚本。后来,网络的发展引起了对动态内容需求的增加,通过这种方式,用其他语言而不是Perl编写的CGI应用程序变得更加流行和需要,并被称为脚本。脚本如何被服务器执行的具体细节由服务器决定。CGI应用程序几乎可以执行任何任务。例如,你可以访问数据库,保持telnet会话,即时创建网页和生成图形等。CGI是有一个非常简单的概念,但创建一个CGI应用程序需要真正的编程技巧。

什么是CGI?

通用网关接口(CGI)只不过是一个协议,它定义了网络服务器与一些可执行程序的互动,以产生动态网页。基本上,它显示了网络服务器如何将信息发送给程序,而程序将信息发回给网络服务器,反过来又可以发回给浏览器。在网络服务器和外部程序之间,它被认为是标准的编程接口。

CGI代表。

通用: 与许多不同的操作系统互动。

网关: 它为用户提供途径,以获得对不同程序的访问,如图片生成器或数据库等。

接口: 它使用一种方法与网络服务器互动。

CGI程序可以发送许多类型的数据或媒体,如文件、图像、音频剪辑等。大多数网站使用CGI的字段进行输入,网络上动态内容的交易主要是通过CGI完成的。它是一种方法,通过这种方法,网络服务器可以分别从数据库、文档和其他程序获得/发送数据,然后通过网络将这些数据呈现给浏览者。

CGI架构

Perl  CGI编程

在上图中,在HTTP(超文本传输协议)的帮助下,运行在客户机上的网络浏览器与网络服务器交换信息。由于CGI程序和网络服务器通常运行在网络服务器所在的同一系统上,根据浏览器的请求,网络服务器要么从自己的文档目录中提供文档,要么执行CGI程序。

简单的CGI程序:

下面是一个简单的程序,用来理解Perl中CGI编程的工作。在这里,我们将在HTML程序中获得输入,然后运行CGI脚本以得到网页。
因为,HTML确定了一些输入字段,我们可以用它们来将用户数据传递给CGI程序。这里,是利用这些输入字段的HTML表格,如文本字段、下拉列表、复选框和一个提交按钮,用于提交用户数据到网络服务器。

<html>
<head>
    <title>GfG Test Example Form</title>
</head>
<body>
    <h1>CGI-Example Form</h1>
    <h3><p>Information Required.</p></h3>
    <form action="/cgi-bin/script.pl" method="Post">
    <table>
        <tr>
        <td>Name:</td>
        <td><input type="text" name="name"><td>
        </tr>
        <tr>
        <td>Gender:</td>
        <td><select name="gender" size="1">
            <option>Female</option>
            <option>Male</option>
            <option>Transgender</option>
        </select></td>
        </tr>
        <tr>
            <td>Profession:</td>
            <td><input type="text" name="profession"><td>
        </tr>
        <tr>
        <td>Sports:</td>
            <td><input type="checkbox" name="sport"
                    value="Cricket">Cricket
                <input type="checkbox" name="sport"
                    value="Hockey">Hockey
                <input type="checkbox" name="sport"
                    value="TableTennis">TableTennis
                <input type="checkbox" name="sport"
                    value="Football">Football</td>
        </tr>
        <tr>
        <td colspan="2"><input type="submit"></td>
        </tr>
    </table>
    </form>
</body>
</html>                    

Perl  CGI编程

注意: HTML表单中的每个输入元素都有一个名称属性,这在我们需要访问数据时是很重要的。而且,所有的输入元素都在<form>标签内。此外,<form>标签也有一个 “action “属性,它决定了提交表单时将调用的CGI脚本。

上述表格的Perl-CGI脚本。

推荐使用:请先在{IDE}上尝试你的方法,然后再继续解决

#!"c:\xampp\perl\bin\perl.exe"
  
use strict;
use CGI ':standard';
  
my name = param('name');
mygender = param('gender');
my profession = param('profession');
my @sports = param('sport');
  
mylist;
  
if (@sports) 
{
    list = join ', ', @sports;
} 
else 
{
    list = 'Null';
}
  
print header,
start_html(-title=>name),
h1("Hello,name"),
h3 p('You have Submitted the following Data:'),
h4 table(Tr(td('Name:'),
h4 td(name)),
h4 Tr(td('Gender:'),
h4 td(gender)),
h4 Tr(td('Profession:'),
h4 td(profession)),
h4 Tr(td('Sports:'),
h4 td(list))),
end_html;

CGI.pm: CGI.pm(使用CGI;)是一个大型的、广泛使用的Perl模块,用于编程CGI网络应用程序,它为接收和处理用户输入提供了一致的API。我们需要写一个Perl脚本来返回HTTP响应头(Content-type: html/text)和正文中的HTML,但CGI.pm为我们轻松地处理了这个问题(不需要对HTTP响应头进行硬编码)。

它有一个名为 “param “的函数,可以将我们传递给脚本的数据的细节/信息发送回来。当它被赋予一个参数的名称时,它返回与该名称相关的值。在HTML表格页面中的输入元素的名称就是CGI参数的名称。

注意: 提交表单后,我们将得到的网页如下所示。如果你注意到在网页浏览器的URL框中,你会发现现在的URL已经被改变了。

Perl  CGI编程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程