Thread Parameter bei SSI und CGI - oder warum funktioniert GET, POST aber nicht? (33 answers)
Opened by Draussenduscher at 2012-11-08 08:42

jan
 2012-11-08 11:19
#163144 #163144
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
Der Body ist auch bei SSI zu finden -- aber nicht für das Perl-Script, weil das über einen GET Subrequest eingebunden wird.
Es hat aber Zugriff auf die Umgebungsvariablen des Requests, d.h. QUERY_STRING ist verfügbar.

Beispiel:
Code: (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl

use strict;
use warnings;

print "Content-Type: text/plain\n\n";
print "$_ => ",$ENV{$_},"\n" for keys %ENV;


mit
Code: (dl )
<!--#exec cgi="envs.pl" -->


eingebunden bringt bei GET bei mir
Quote

SCRIPT_NAME => /ssitest/envs.pl
SERVER_NAME => 127.0.0.1
SERVER_ADMIN => webmaster@localhost
HTTP_ACCEPT_ENCODING => gzip, deflate
HTTP_CONNECTION => keep-alive
REQUEST_METHOD => GET
HTTP_DNT => 1
HTTP_ACCEPT => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
DATE_GMT =>
SCRIPT_FILENAME => /home/jan/www/ssitest/envs.pl
DOCUMENT_NAME => index.shtml
LAST_MODIFIED =>
SERVER_SOFTWARE => Apache/2.2.22 (Ubuntu)
QUERY_STRING =>
REMOTE_PORT => 54917
HTTP_USER_AGENT => Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0
SERVER_PORT => 80
SERVER_SIGNATURE => <address>Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80</address>

HTTP_CACHE_CONTROL => max-age=0
HTTP_ACCEPT_LANGUAGE => de-DE,de;q=0.8,en-US;q=0.7,en;q=0.5,en-gb;q=0.3,en-EU;q=0.2
REMOTE_ADDR => 127.0.0.1
SERVER_PROTOCOL => INCLUDED
DATE_LOCAL =>
PATH => /usr/local/bin:/usr/bin:/bin
DOCUMENT_URI => /ssitest/index.shtml
REQUEST_URI => /ssitest/index.shtml
GATEWAY_INTERFACE => CGI/1.1
SERVER_ADDR => 127.0.0.1
DOCUMENT_ROOT => /home/jan/www
USER_NAME =>
HTTP_HOST => 127.0.0.1

und bei POST (curl -X POST http://127.0.0.1/ssitest/index.shtml)
Quote
SCRIPT_NAME => /ssitest/envs.pl
SERVER_NAME => 127.0.0.1
SERVER_ADMIN => webmaster@localhost
REQUEST_METHOD => GET
HTTP_ACCEPT => */*
DATE_GMT =>
SCRIPT_FILENAME => /home/jan/www/ssitest/envs.pl
DOCUMENT_NAME => index.shtml
LAST_MODIFIED =>
SERVER_SOFTWARE => Apache/2.2.22 (Ubuntu)
QUERY_STRING =>
REMOTE_PORT => 54919
HTTP_USER_AGENT => curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
SERVER_SIGNATURE => <address>Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80</address>

SERVER_PORT => 80
REMOTE_ADDR => 127.0.0.1
SERVER_PROTOCOL => INCLUDED
DATE_LOCAL =>
PATH => /usr/local/bin:/usr/bin:/bin
DOCUMENT_URI => /ssitest/index.shtml
REQUEST_URI => /ssitest/index.shtml
GATEWAY_INTERFACE => CGI/1.1
SERVER_ADDR => 127.0.0.1
DOCUMENT_ROOT => /home/jan/www
USER_NAME =>
HTTP_HOST => 127.0.0.1


direkter POST auf das CGI bringt:
Quote
SCRIPT_NAME => /ssitest/envs.pl
SERVER_NAME => 127.0.0.1
SERVER_ADMIN => webmaster@localhost
REQUEST_METHOD => POST
HTTP_ACCEPT => */*
SCRIPT_FILENAME => /home/jan/www/ssitest/envs.pl
SERVER_SOFTWARE => Apache/2.2.22 (Ubuntu)
QUERY_STRING =>
REMOTE_PORT => 54920
HTTP_USER_AGENT => curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
SERVER_SIGNATURE => <address>Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80</address>

SERVER_PORT => 80
REMOTE_ADDR => 127.0.0.1
SERVER_PROTOCOL => HTTP/1.1
PATH => /usr/local/bin:/usr/bin:/bin
REQUEST_URI => /ssitest/envs.pl
GATEWAY_INTERFACE => CGI/1.1
SERVER_ADDR => 127.0.0.1
DOCUMENT_ROOT => /home/jan/www
HTTP_HOST => 127.0.0.1

View full thread Parameter bei SSI und CGI - oder warum funktioniert GET, POST aber nicht?