html - 将数据从 HTML 表单传递到 Perl 脚本的步骤

标签 html perl apache cgi cgi-bin

我创建了一个简单的 HTML,其中包含以下表单:

<form action="WEB-INF/cgi/run.pl" method="post">
      <table border="0" cellspacing="0"> 

      <tbody>
      <tr><th align="center" bgcolor="F7F5F2"> <p class="normal">Submission Form</p> </th></tr>

      <tr><td align="center" bgcolor="F7F5F2"> <p class="normal">Insert your text below:</p> </td></tr>
      <tr><td><textarea wrap="virtual" name="seq_data" rows="15" cols="80"></textarea></td></tr>  
    </tbody></table>
    or upload a file :   <input type="file" name="file" size="29" border="0"><br><br>
    <input class="normalc" value="Submit Query" type="submit">
    <input class="normalc" value="Clear Form" type="reset"><p></p>
</form>

我需要将表单中的数据作为输入传递给 perl 脚本 (run.pl)。

在网上搜索时,我读到: 1) 我需要通过 apache tomcat 测试我的网站。我已经安装了 apache 7.0 版并通过删除围绕此 servlet 的 XML 注释修改了 Tomcat 7.0/conf/web.xml 文件:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

我还创建了放置 perl 脚本的目录“WEB-INF/cgi”。

2) 我需要修改我的 Perl 脚本,但我找不到我应该添加什么以便将数据从 html 表单传递到我的脚本。

除了修改Tomcat和Perl脚本,不知道还有没有必要的步骤。 我已经阅读了许多相关主题,但仍然找不到分步指南。请帮忙。

最佳答案

当网络服务器收到 HTTP 请求时,它通常会以资源的内容作为响应。但是,如果 URL 指定了 Common Gateway Interface (CGI) 资源,它将运行它并返回程序的输出。

服务器的配置指定了 CGI 和非 CGI 资源之间的区别,这可以基于文件扩展名 - .cgi.pl 等。 - 或者文件在服务器目录结构中的位置。

服务器通过其 STDIN 将 HTTP 请求中的信息以及进程的环境变量传递给 CGI 程序。一般来说,PUTPOST 请求的参数将出现在 STDIN 中,而 GET 请求的参数将插入到环境变量中。

程序的工作是根据这些参数构建所需的响应并将它们打印到 STDOUT。它还可能使用数据库信息和其他系统信息。此输出将被服务器用作 HTTP 响应的内容。

你应该看看 Perl CGI module它将此接口(interface)包装在方便的子例程中。

关于html - 将数据从 HTML 表单传递到 Perl 脚本的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817809/

相关文章:

arrays - 在perl中如何运作 "$_ & 1"

php - JQuery 使用 PHP GET 从文本框重新加载 DIV 层

javascript - 使用 javascript 更改多个图像的样式(不透明度)

html - bootstrap 3.3.4 导航栏上的全宽输入组

perl - 冒号和逗号之间的 Grep 数字

bash - 如何为从 perl 脚本运行的 bash 命令加载 bash_profile?

html - 如何将中文文本粘贴到没有 UTF-8 元标记的 html 片段中?

python - 在 apache/mod_wsgi 上运行 flask 时遇到问题

node.js - 生产中的 Ember CLI 与 Apache 服务器上的 Sails.js API 通信时出现问题

php - PHP 解释器如何与 Apache 交互?