#!/usr/bin/perl # # Version vom 10.12.03 # # perl V 5.6.1 oder groesser notwendig # # use strict; use CGI qw(:standart); use CGI::Carp qw(fatalsToBrowser); use Fcntl qw(:DEFAULT); use vars qw($lastError); my $q = CGI->new(); print "Content-Type: text/html\n\n"; #read input parameters my $username = $q->param("username"); my $firstname = $q->param("firstname"); my $telephone = $q->param("telephone"); my $zipcode = $q->param("zipcode"); my $areacode = $q->param("areacode"); my $country = $q->param("country"); my $street = $q->param("street"); my $town = $q->param("town"); my $email = $q->param("email"); my $fax = $q->param("fax"); my $link = $q->param("link"); my $category = $q->param("category"); my $subcategory = $q->param("subcategory"); my $categoryID = $q->param("categoryID"); my $subcategoryID = $q->param("subcategoryID"); my $adverttype = $q->param("adverttype"); my $busitype = $q->param("busitype"); my $advertheader = $q->param("advertheader"); my $advertbody = $q->param("advertbody"); my $adults_only = $q->param("adults_only"); my $advertID = $q->param("advertID"); my $action = $q->param("action"); my $xml = $q->param("xml"); # Get the current time. my($date) = scalar(localtime()); # Append the data to a file. open(F, ">>tester.txt"); print F "From $0 at $date\n"; #for $key (keys %CGI) { # print F "$key => $CGI{$key}\n"; #} print F "Name: $username \n"; print F "Vorname: $firstname \n"; print F "Telefon: $telephone \n"; print F "PLZ: $zipcode \n"; print F "Vorwahl: $areacode \n"; print F "Land-Vorwahl: $country \n"; print F "Strasse: $street \n"; print F "Stadt: $town \n"; print F "Email: $email \n"; print F "Fax: $fax \n"; print F "URL: $link \n"; print F "Kategorie: $category \n"; print F "Unterkategorie: $subcategory \n"; print F "KategorieID: $categoryID \n"; print F "SubkategorieID: $subcategoryID \n"; print F "Suchen-Bieten: $adverttype \n"; print F "Privat-Gesch: $busitype \n"; print F "Anzeigenkopf: $advertheader \n"; print F "Anzeigentext: $advertbody \n"; print F "Nur für Erwachsene: $adults_only \n"; print F "ID der Anzeige: $advertID \n"; print F "Action: $action \n"; print F "XML-String: $xml \n"; close(F); #print "
\n";
receiveAdsImage($q) or die ("FATAL: receiveAdsImage fatal error: ".defined($lastError)?$lastError:$!."\n");
my $resHash;
$resHash->{'duration'} = escapeString('30');
$resHash->{'link'}     = escapeString('http://www.test.de');
$resHash->{'comment'}  = escapeString('Anzeigenschleuder - Test: dieses Skript erhalten die Maerkte im Mitglied-Bereich unter: cgi-submission -> test.cgi');
printXMLResponce($resHash);
#print "
\n"; exit; #recieve and store advert image file if exist sub receiveAdsImage { my($query) = @_; $lastError = undef; unless (defined($query->param('asimage')) && ($query->param('asimage') !~ /^\w*$/)) { return 1; } else { #T print $query->param('asimage')."
\n"; my $file = $query->upload('asimage'); my $fileinfo = $query->uploadInfo($file); my $fileext; #determine file name as transmitted (full path may be included) my $filename = getFileName($file,$query->uploadInfo($file)->{'Content-Disposition'}); #determine file extension if ($filename =~ /\.(jpg|jpeg|gif|png)$/i) { $fileext = lc($1); } else { $lastError = "Falscher Typ der Bild-Datei. Nur jpeg (jpg), png, gif sind erlaubt."; return; } #genertate random file name #my $fileID = generateID(10); my $advertID = $q->param("advertID"); my $fileID = "pic-$advertID"; #compose complete file name with random name and determined extension my $storeFile = "$fileID.$fileext"; #Tprint "Size $storeFile= $filesize\n
"; if (!$file && $query->cgi_error) { $lastError = "Fehler beim Holen der Bild-Datei im CGI."; return; } if (not sysopen FILE, "$storeFile", O_EXCL | O_CREAT | O_WRONLY, 0600) { $lastError = "Fehler bei der Erzeugung der Bild-Datei. ($!)"; return; } else { my $buffer = ""; my $BUFFER_1K = 1024; my ($fsize,$rsize) = (0,0); binmode FILE; while (($rsize = read ($file, $buffer, $BUFFER_1K))) { print FILE $buffer or return; #print("Fehler beim Schreiben der Bild-Datei. ($!)\n"); $fsize += $rsize; } close FILE; # print ("Store image file (name=$storeFile,size = $fsize)\n"); return 2; } } } #Used in receiveAdsImage function sub getFileName { my ($cginame, $disp) = @_; my $name; if ($disp =~ /filename\=\"(.+)\"/) { $name = ($1); } else { $name = $cginame; } return $name; } #generate random string $idSize chars length sub generateID { my $idSize = shift; $idSize = 8 if not defined($idSize); my @chars = ("A".."Z","a".."z",1..9); return join("", @chars[ map{rand @chars} (1..$idSize) ]); } sub escapeString { my $res = shift; $res =~ s/\&/\&/g; $res =~ s/\/\>/g; $res =~ s/\"/\"/g; $res =~ s/\'/\'/g; return $res; } sub printXMLResponce { $resHash = shift; print < $resHash->{'duration'} $resHash->{'link'} $resHash->{'comment'} HTMLTEXT }