Hallo,
erst mal vielen Dank für eure zahlreichen Antworten.
Hier mein Skript, wie ich den POST auslesen will (ist noch nicht ganz fertig!):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
use CGI;
print "Content-type: text/html\n\n";
my $q = new CGI;
#TODO
#Timeout verhindern
#Gültige URL Parameter
my $strPARTNERID_valid ="BECHTLE";
my $strPWD_valid = "TEST";
#-----------------------------------------------------
#Umgebungsvariablen - bei Bedarf zum Testen
#
#$ENV{CONTENT_LENGTH};
#
#----------------------------------------------------
my @params = split(/&/,$ENV{QUERY_STRING});
foreach (@params){
($key, $val) = split (/=/,$_);
$param{$key} = $val;
};
#Datenablage - in diesem Verzeichnis werden die Daten gespeichert
my $strDataPath = "/srv/www/webshop1/web888w/dattrans/backup_bechtle_orderresponse/";
#Eindeutiger Dateiname inkl. Pfad bilden aus Timestamp + Zufallszahl z.B.: /srv/www/webshop1/web888w/dattrans/backup_bechtle_order/20100209_345.xml
my $strTimeStamp = myCurrentDate().time();
#Randomize
my $strDateiname = $strDataPath.$strTimeStamp."_".int(rand()*1000).".xml";
#Uebergebene URL Parameter ueberpruefen
my $strPARTNERID = $param{PARTNERID};
if (length($strPARTNERID)>0 and ($strPARTNERID eq $strPARTNERID_valid)){
print "Alles OK - PARTNERID ist gueltig";
}
else{
#in Datei loggen
#Remote-Adresse,strPARTNERID
#Response.Status = "401 Unauthorized"
}
my $strPWD = $param{PWD};
if(length($strPWD)>0 and ($strPWD eq $strPWD_valid)>0){
print "Alles OK -PWD gültig";
}
else{
#in Datei loggen
#Remote-Adresse,strPWD
#Response.Status = "400";
}
#Daten auslesen
my $strData = "";
my $totalBytes;
read(STDIN, $input, $ENV{'CONTENT_LENGTH'})or die "error in read: $!";
print $input;
Und das wird ausgegeben, wenn ich das Skritp starte:
HTTP Result code: 200
Connection: close
Date: Thu, 11 Feb 2010 08:23:24 GMT
Server: Apache/2.2.10 (Linux/SUSE)
Content-Type: text/html
Client-Date: Thu, 11 Feb 2010 08:23:24 GMT
Client-Peer: 132.187.227.35:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=DE/O=Universitaet Wuerzburg/CN=UNIWUE-CA - G01/emailAddress=ca@uni-wuerzburg.de
Client-SSL-Cert-Subject: /C=DE/O=Universitaet Wuerzburg/OU=Rechenzentrum/CN=webshop.rz.uni-wuerzburg.de
Client-SSL-Cipher: DHE-RSA-AES256-SHA
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
Alles OK - PARTNERID ist gueltig
Alles OK -PWD gültig
$input ist leider leer!! :-(