Ben bir Perl CGI komut dosyası, bir PHP sayfası yönlendirebilirsiniz?

4 Cevap php

Ben ödeme işlemleri, ön şartlarından biri ile çalışmak için bir dış kaynak kullanan bir site ile çalışıyorum başarı bir CGI komut dosyası denir olmasıdır.

Ne bilmek isteyen am o CGI komut ile bir PHP sayfasına yönlendirme yapmak ve PHP şu anda bu benim Perl olan var, yönlendirme bir Perl aracılığıyla yüklenmiş olduğunu algılamasını sağlamak mümkündür.

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

use strict;
use warnings;


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

Location: $URL;

4 Cevap

The standard way to do CGI programming in Perl is using the CGI.pm module. A redirect can be coded like this (not sure about the syntax).

 #!/usr/bin/perl

 use strict;
 use warnings;
 use CGI;

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

 print CGI::redirect($URL); 

Hedef sayfası PHP ya da ne olup olmadığını bir önemi yok.

Bir "perl yönlendirme" (aslında kavramı oldukça saçma) geldiyse diğer sayfa olarak emin olamaz. Eğer diğer PHP sayfası üzerinde kontrol varsa, bazı kongre ayarlamak ve sorgu dizesi bir parametre iletebilirsiniz.

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

Update: Diğerleri yorumladı var gibi, soru gerçekten biraz mantıklı - ve bazı ifadeler ("başarı bir CGI komut dosyası denir") dinamik web sayfaları ve CGI temelleri hakkında bazı temel yanlış anlamalara öneririz. Benim örnek kod Perl CGI bir yönlendirme yapmak için nasıl gösterir, ama asıl soru (ve dolayısıyla cevap) gerçek senaryo için yetersiz olduğu muhtemel bulunuyor.

Bu CGI komut dosyası çağırır dışarıda bir kaynak ise, nasıl sitenizde bir PHP sayfası veya CGI komut dosyası olup olmadığını bilmek, o çağırır ki? Benim için, sadece PHP sayfayı çağırmak ve yönlendirme için herhangi bir gereklilik olmaması için bu ödeme hizmeti kurabilirsiniz. Ya anlamadığım bir şey var mı?

Sitenizde, e belirli bir URL'ye arar eğer. g. /cgi-bin/trigger.cgi, sen .htaccess bu gibi cgi-bin koymak ile kandırmak yapabilirsiniz:

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

kolay yolu URL bir get değişken eklemek olacaktır:

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

sonra PHP fantezi bir şey yapmak zorunda değildir. Ancak, $_SERVER['HTTP_REFERER'] değerine bakmak ve atıfta scriptin adını ayrıştırmak. Bu değer kullanıcı aracısı tarafından ayarlanır beri Ama mutlaka güvenilir ya da mevcut değildir.

Başka bir sayfaya yönlendirmek için aşağıdaki yöntemi kullanın.

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

Arama www.search.cpan.org oturum modülü hakkında daha fazla bilgi için.