簡體   English   中英

我可以從Perl CGI腳本重定向到PHP頁面嗎?

[英]Can I redirect to a PHP page from a Perl CGI script?

我正在一個使用外部資源處理付款交易的網站,前提條件之一是成功調用CGI腳本。

我想知道的是,可以使用CGI腳本重定向到PHP頁面,並使PHP檢測到它已通過Perl重定向加載,我目前在Perl中。

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

use strict;
use warnings;


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

Location: $URL;

在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中進行重定向,但是原始問題(以及答案)可能不適合實際情況。

如果這是調用CGI腳本的外部源,那么如何知道它是您的站點上的PHP頁面還是CGI腳本? 對我來說,您只需設置此付款服務即可調用您的PHP頁面,而無需任何重定向。 還是我不了解的東西?

如果它在您的站點上查找特定的URL,例如/cgi-bin/trigger.cgi ,則可以使用放在cgi-bin .htaccess來欺騙它,如下所示:

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

最簡單的方法是將get變量添加到您的URL:

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

那么您的PHP不必做任何花哨的事情。 但是,您可以查看$_SERVER['HTTP_REFERER']值並解析引用腳本的名稱。 但是由於此值是由用戶代理設置的,因此不一定可靠或不存在。

要將頁面重定向到另一個,請使用以下方法。

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

搜索search.cpan.org以獲取有關會話模塊的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM