Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以从Perl CGI脚本重定向到PHP页面吗?_Php_Perl_Redirect_Cgi - Fatal编程技术网

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

我可以从Perl CGI脚本重定向到PHP页面吗?,php,perl,redirect,cgi,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; 最简单的方法是向URL添加get变量: my $URL

我正在与一个使用外部源处理支付交易的网站合作,成功的先决条件之一是调用CGI脚本

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

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

use strict;
use warnings;


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

Location: $URL;

最简单的方法是向URL添加get变量:

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

那么你的PHP就不必做任何花哨的事情了。但是,您可以查看$\u SERVER['HTTP\u REFERER']值并解析引用脚本的名称。但由于该值由用户代理设置,因此不一定可靠或存在。

最简单的方法是在URL中添加get变量:

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

那么你的PHP就不必做任何花哨的事情了。但是,您可以查看$\u SERVER['HTTP\u REFERER']值并解析引用脚本的名称。但由于该值是由用户代理设置的,因此不一定可靠或存在。

如果这是调用CGI脚本的外部源,它如何知道调用的是您站点上的PHP页面还是CGI脚本?对我来说,你可以设置这个支付服务来调用你的PHP页面,避免任何重定向的要求。还是有什么我不明白的

如果它在你的网站上寻找一个特定的URL,例如。g/cgi-bin/trigger.cgi,你可以用放在cgi-bin中的.htaccess来欺骗它,如下所示:

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

如果这是一个调用CGI脚本的外部源,它如何知道它调用的是PHP页面还是站点上的CGI脚本?对我来说,你可以设置这个支付服务来调用你的PHP页面,避免任何重定向的要求。还是有什么我不明白的

如果它在你的网站上寻找一个特定的URL,例如。g/cgi-bin/trigger.cgi,你可以用放在cgi-bin中的.htaccess来欺骗它,如下所示:

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

用Perl进行CGI编程的标准方法是使用模块。 重定向可以这样编码,但不确定语法

 #!/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中进行重定向,但原始问题和答案可能不适合实际场景

用Perl进行CGI编程的标准方法是使用模块。 重定向可以这样编码,但不确定语法

 #!/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中进行重定向,但原始问题和答案可能不适合实际场景

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

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

搜索有关会话模块的更多详细信息。

要将页面重定向到其他页面,请使用以下方法

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

搜索有关会话模块的更多详细信息。

您不了解的是,在Web编程中,当人们看到术语“调用CGI脚本”时,他们认为是Perl,当他们看到单词Perl时,他们认为是CGI脚本。我认为你是对的;即使成功调用CGI脚本的要求没有任何意义,似乎也没有任何理由涉及CGI,更不用说Perl了。你不明白的是,在Web编程中,当人们看到术语调用CGI脚本时,他们认为Perl,当他们看到Perl这个词时,他们认为CGI脚本。我认为你是对的;即使调用CGI脚本成功的要求也没有任何意义,CGI似乎没有任何理由参与其中,更不用说Perl了;我想知道,让那些痴迷于XY问题的人接受错误答案有多容易;