【问题标题】:Pass values and parameters from HTML to CGI将值和参数从 HTML 传递到 CGI
【发布时间】:2014-11-25 20:22:17
【问题描述】:

我在 html 中使用 post 方法将参数和值传递给 cgi 文件。我正在从那个 cgi 文件中提取值和参数。我已经尝试了下面的代码,

HTML:

    <form action="http://hostname.com/manipulation.cgi?name5=value5&name6=value6&name7=value7&name8=value8" method="POST"> </form>

CGI: manipulation.cgi

use strict;
use CGI;
my $query ->new CGI;
print $query->header();

my @paramNames = $query->param; #Receive N number of parameters
my @paramValues = map $query->param($_), $query->param; #Receive N number of parameters values
print $query->h4("@paramNames,@paramValues");

但我无法获得预期的输出。

请帮帮我。

提前致谢。

【问题讨论】:

  • 我看不出代码有问题(尽管最好打印一个有效的 HTML 文档)。你得到什么错误?你想解决什么问题?你为什么卡住了?
  • 我没有得到参数和值。预期输出:name5 name6 name7 name8, value5 value6 value7 value8
  • 你看过apache错误日志了吗?
  • 我已从 $query->param 更改为 $query->url_param。现在它工作正常。
  • my $query -&gt;new CGI - 这看起来不对。我希望你的意思是my $query = CGI-&gt;new。如果您不剪切和粘贴您的确切代码,那么我们将很难为您提供帮助。

标签: html perl cgi


【解决方案1】:

url_param — 从URL 获取参数。

use strict;
use CGI;
my $query ->new CGI;
print $query->header();

my @paramNames = $query->url_param; #Receive N number of parameters
my @paramValues = map $query->url_param($_), $query->url_param; #Receive N number of parameters values
print $query->h4("@paramNames,@paramValues");

【讨论】:

  • 这是一个纯代码的答案。你应该用几句话解释你的答案是如何解决问题的。
【解决方案2】:

你的所作所为毫无意义。如果您的所有参数都在 URL 中,那么您为什么使用 POST,而不是 GET?事实上,你为什么要使用表单?

如果您使用的是 GET,那么param 将为您提供来自 URL 的参数。

如果您使用的是 POST,那么param 将为您提供来自 HTTP 请求正文的参数,url_param 将为您提供来自 URL 的参数。

所以看来你需要改用url_param

值得指出的是,2014 年学习 CGI 有点像学习使用打字机。它会起作用,并且某些技能会很有用。但是建议你学习something a little more up to date 会更好。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 1970-01-01
    • 2022-12-11
    • 2014-07-02
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2017-09-06
    相关资源
    最近更新 更多