【问题标题】:Redirect one html page to another using perl使用 perl 将一个 html 页面重定向到另一个页面
【发布时间】:2013-08-17 04:10:02
【问题描述】:

我有一个html表单

<form id="branch" method="get" action="/x/local/.../perl_code.pl">

Branch Name : <input type="text" name="textBox">

<input type="submit" value="Generate">
</form>

在 perl_code.pl 我有这个

use strict;
use warnings;

use CGI qw(:standard);
my $value = uc(param('textBox'));
system "perl /x/local/.../perl_CODE21.pl $value";
#other system commands that work and output the index2.html
print redirect(-url=>'http://server.com:8080/project_name/index2.html');

我最终想要做的是,从index1.html 中的文本框中获取输入,检索perl_code 中的值并执行一些system 命令打印出index2.html,最后将其重定向到index2.html .我试图手动检查所有其他系统命令及其输出,它们可以工作。我无法检索文本值并传递它,并且重定向也不起作用。浏览器重定向到perl_code.pl 并给出 404。我目前的时间不多了。简单的答案将不胜感激。

编辑:

这是一个 servlet 程序,所以如果有的话,也建议对 web.xml 进行任何修改。

【问题讨论】:

    标签: html perl redirect http-status-code-404


    【解决方案1】:

    您不能在输出到标准输出后重定向。重定向或打印,而不是两者。检查您的system 调用是否对标准输出没有任何作用;甚至更好的是,将其标准输出重定向到以防万一(例如/dev/null)。

    【讨论】:

    • 你说重定向(-url=>'server.com:8080/project_name/index2.html');足够的?而且我是否将值正确存储到变量中?我不确定
    • 您可能将参数正确存储到变量中,但如果在调用system 时用引号将其括起来会更安全,以防万一它有特殊字符或空格或其他东西:@987654325 @。另外...如果另一个程序是perl,你为什么使用system 而不是use呢?
    • 还有……“够了”?为了什么?如果您的index2.html 是由perl_CODE21.pl 创建的,那么显然您需要它。
    • system "perl /x/local/.../perl_CODE21.pl $value"; redirect(-url=&gt;'http://server.com:8080/project_name/index2.html'); 我使用了这个并且html页面重定向到`perl_code.pl`并返回404。另外我很抱歉我之前没有提到这个,这实际上是一个运行在tomcat上的servlet程序。 web.xml 中的修改应该是什么
    • 现在我完全糊涂了。该命令不可能重定向到perl_code.pl,特别是因为"perl_code.pl"实际上并没有出现在该行的任何位置;除非重定向是 perl_CODE21.pl 所做的。以及您没有尝试我建议的两个 cmets 的任何原因(关于将标准输出重定向到 /dev/null)?
    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 2014-09-01
    • 2011-04-08
    • 2014-08-10
    • 2021-06-27
    相关资源
    最近更新 更多