Thread POST direkt auslesen ohne Formular (32 answers)
Opened by dater at 2010-02-10 15:55

dater
 2010-02-11 09:28
#132614 #132614
User since
2010-02-10
26 Artikel
BenutzerIn
[default_avatar]
Hallo,

erst mal vielen Dank für eure zahlreichen Antworten.
Hier mein Skript, wie ich den POST auslesen will (ist noch nicht ganz fertig!):
Code: (dl )
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!! :-(

View full thread POST direkt auslesen ohne Formular