为了步骤从HTML表单数据传递给Perl脚本(Steps in order to pass data

2019-09-20 20:10发布

我创建了一个简单的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脚本等其他任何必要的步骤。 我看了很多相关的话题,但我仍然无法找到一个一步一步的指导。 请帮忙。

Answer 1:

当Web服务器接收到的HTTP请求它通常与资源的内容进行响应。 但是,如果该URL指定了一个通用网关接口 (CGI)资源将运行并返回程序的输出来代替。

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

服务器通过在HTTP请求通过其STDIN CGI程序,并且还处理的环境变量的信息。 通常,对于一个参数PUTPOST请求将显示在STDIN而那些用于GET请求被插入的环境变量。

该计划的工作是建立一个基于这些参数所需要的响应,并将其打印到标准输出。 它也可以利用数据库信息和其他系统信息。 该输出将被服务器作为HTTP响应的内容来使用。

你应该看看Perl CGI module它包装在方便的子程序此接口。



Answer 2:

application.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>
    Application| Form
  </title>
  <style>
  input
  {
    display:block;
  }
  </style>
</head>
  <body>
    <form action="evaluate.pl" method="post" enctype="multipart/form-data">
      <input type="file" name="photo">
      <input type="file" name="photo">
      <input type="text" name="email_id" placeholder="email id">
      <input type="submit" value="submit">
    </form>
  </body>
</html>

evaluate.pl

#!C:/wamp/bin/perl/bin/perl.exe
#Purpose: To find the number of photos uploaded

use CGI;
use strict;
my $cgi = new CGI;

print "Content-Type:text/html\r\n\r\n";

my $param = $cgi->{param};

foreach( keys(%{$param}) ){
  print $_," -> ",$param->{$_};
  print "<br/>";
}

你可以问我,如果你不知道如何从Perl中列读取的值, 而是先了解这个例子中,我已经发布了,然后我会帮你。



文章来源: Steps in order to pass data from HTML form to Perl script