我可以从Perl CGI脚本重定向到PHP页面吗?

时间:2010-04-29 12:41:58

标签: php perl redirect cgi

我正在使用使用外部来源处理付款交易的网站,其中一个先决条件是成功时调用CGI脚本。

我想知道的是,可以使用CGI脚本重定向到PHP页面并让PHP检测到它是通过Perl重定向加载的,我目前已经在我的Perl中了。

#!/usr/bin/perl
#
# fixedredir.cgi

use strict;
use warnings;


my $URL = "http://www.example.com/";

Location: $URL;

4 个答案:

答案 0 :(得分:4)

在Perl中进行CGI编程的标准方法是使用CGI.pm模块。 重定向可以这样编码(不确定语法)。

 #!/usr/bin/perl

 use strict;
 use warnings;
 use CGI;

 my $URL = "http://www.example.com/";

 print CGI::redirect($URL); 

如果目标页面是PHP或其他什么,我无关紧要。

其他页面无法确定它是否来自“perl重定向”(实际上这个概念相当荒谬)。如果您可以控制其他PHP页面,则可以设置一些约定并在查询字符串中传递参数。

 my $URL = "http://www.example.com/x.php?redirectFromPerl=1";

更新:正如其他人所评论的那样,问题确实没有意义 - 而且有些陈述(“CGI脚本的成功被称为”)表明了对动态网页基础知识的一些基本误解。 CGI。我的示例代码显示了如何在Perl CGI中进行重定向,但是原始问题(以及答案)可能不适合真实场景。

答案 1 :(得分:2)

如果这是一个调用CGI脚本的外部源,它会如何知道它是否是您网站上的PHP页面或CGI脚本?对我来说,您可以设置此付款服务来调用您的PHP页面,并避免任何重定向要求。或者有什么我不明白的东西?

如果它在您的网站上查找特定网址,请执行以下操作: G。 /cgi-bin/trigger.cgi,您可以使用.htaccess放入cgi-bin来欺骗它,如下所示:

<Files trigger.cgi>
    SetHandler application/x-httpd-php
</Files>

答案 2 :(得分:1)

最简单的方法是在网址中添加一个get变量:

my $URL = "http://www.example.com/?from=perl"; 

然后你的PHP不需要做任何花哨的事情。但是,您可以查看$_SERVER['HTTP_REFERER']值并解析引用脚本的名称。但由于此值由用户代理设置,因此不一定可靠或不存在。

答案 3 :(得分:0)

要将页面重定向到另一个页面,请使用以下方法。

use CGI::Session;
use CGI::Session::Plugin::Redirect;
my $session = new CGI::Session();
print $session->redirect('http://exsample.com/redirect-path/');

搜索search.cpan.org以获取有关会话模块的更多详细信息。