Perl :: CGI重定向参数并在新页面中访问它

时间:2013-05-01 20:04:49

标签: perl redirect cgi

在PHP中,重定向到新的URL并传递诸如“用户名”之类的信息是很常见的。

<?php

   header( 'Location: http://www.yoursite.com/new_page.php?user_name=$username' ) ;

?>

然后我可以在'new_page.php。'

中访问'user_name'的值

我无法弄清楚如何使用perl来做到这一点。

print $cgi->redirect(-uri=>http://www.yoursite.com/new_page.pl?user_name=$username, -status=>303 , -cookie => $c );

我已尝试使用我的$username = $cgi->param('user_name'),但它没有打印任何内容。

感谢。

2 个答案:

答案 0 :(得分:4)

你忘记了引号:

print $cgi->redirect(
         -uri=>"http://www.yoursite.com/new_page.pl?user_name=$username", 
         -status=>303,
         #... 
);

另外,请记住在调用redirect之前转义用户名:

my $username = escape( $cgi->param('user_name') );

答案 1 :(得分:1)

我认为PHP不会起作用,但我不是PHP开发人员。如果你给出错误它会有所帮助,但我认为你需要引用字符串。

print $cgi->redirect(
    -uri    => "http://www.yoursite.com/new_page.pl?user_name=$username",
    -status => 303,
    -cookie => $c,
);

您应该将以下两行(启用strictwarnings pragma)添加到脚本的顶部,它们可以帮助您调试问题:

use strict;
use warnings;

为了记录,我认为是PHP example should use double quotes

header( "Location: http://www.yoursite.com/new_page.php?user_name=$username" );