Wie kann ich feststellen, ob ein Perl-Skript im CGI-Kontext ausgeführt wird?

8

Ich habe ein Perl-Skript, das von der Befehlszeile und als CGI ausgeführt wird. Wie kann ich im Perl-Skript erkennen, wie es ausgeführt wird?

    
ryeguy 31.01.2011, 17:25
quelle

5 Antworten

15

Am besten prüfen Sie die Umgebungsvariable GATEWAY_INTERFACE . Es enthält die Version des CGI-Protokolls, das der Server verwendet, dies ist fast immer CGI/1.1 . Die von Tony Miller erwähnte Variable HTTP_HOST (oder eine beliebige HTTP_* Variable) wird nur gesetzt, wenn der Client sie liefert. Es ist selten, aber nicht unmöglich für einen Kunden, den Header Host wegzulassen, wobei HTTP_HOST unset verlassen wird.

%Vor%

Wenn ich irgendwann unter mod_perl laufen werde, überprüfe ich auch die Umgebungsvariable MOD_PERL , da sie beim ersten kompilieren des Skripts gesetzt wird.

%Vor%     
Ven'Tatsu 31.01.2011, 18:57
quelle
4

Sie würden am besten den GI im CGI überprüfen.

%Vor%     
Ashley 31.01.2011 19:01
quelle
3

Eine Möglichkeit besteht darin, Umgebungsvariablen zu überprüfen, die von Webservern gesetzt werden.

%Vor%     
Tony Miller 31.01.2011 17:29
quelle
1

Sie können die Anführungszeichen überspringen:

mein $ is_cgi = definiert $ ENV {GATEWAY_INTERFACE};

    
mike jones 19.04.2011 08:46
quelle
-1

Sehen Sie, ob Ihr Programm mit einem TTY verbunden ist oder nicht:

%Vor%     
tadmc 31.01.2011 19:00
quelle

Tags und Links