#!/usr/bin/perl #use CGI::Carp "fatalsToBrowser"; # Setup $zeilen = "4"; # Hier können sie die Anzahl einstellen wieviel Bilder pro Zeile angezeigt werden sollen. # Setup End # Nutzungsbedingungen: # Lizenz: ePostkarten # Stand: 3.09.2001 # # Durch Download der Software erklären Sie sich mit diesen Lizenzabkommen einverstanden. # Der ePostkarten ist Freeware, jedoch nicht zum GPU/GPL - Abkommen zuzuordnen. # Diese Lizenz erlaubt es Ihnen, ePostkarten zu benutzen. # Als Nutzer des ePostkarten können Sie auf eigenes Risiko die Software verändern und/oder auf # Ihre Bedürfnisse anpassen. Sie können auch Dritte mit der Anpassung/Veränderung beauftragen. # Die Original-Software unverändert darf weitergegeben werden jedoch nicht verkauft oder # wiederverkauft werden. # # Die angepasste/veränderte Software und Teile dieser dürfen nicht weitergegeben ,verkauft # oder wiederverkauft werden. # # Alle Copyright- und Versions-Hinweise, die im ePostkarten oder deren HTML-Seiten verwendet, # erstellt und/oder gezeigt werden, dürfen nicht entfernt werden. Die Copyright- und Versions-Hinweise # müssen für Benutzer sichtbar und in ungeänderter Form dargestellt werden. # # Dieses Lizenzabkommen beruht sich auf der aktuellen internationalen Gesetzeslage. # # Bei einem Verstoß gegen diesen Lizenzvertrag kann durch die Firma Coder-World oder deren Beauftragten die # erworbene Lizenz jederzeit zurückgezogen und für nichtig erklärt werden sowie die Benutzung untersagt werden. # ePostkarten und die dazugehörenden Dateien werden ohne Funktionsgarantie für die im Umfeld verwendete Hardware # oder Software verkauft. # # Coder-World oder deren Beauftragten sind in keiner Form für Inhalte oder Verfasser verantwortlich, die durch # diese Software erstellt wurden. # # Das Risiko der Benutzung vom ePostkarten obliegt dem Lizenznehmer, jegliche Erstattungen im Rechtsfall sind ausgeschlossen. # Eine Lizenz ist zeitlich unbegrenzt nutzbar, in der Lizenz ist grundsätzlich der Zugriff auf alle neuen Versionen # für einen unbegrenzten Zeitraum enthalten. # # Hinweis: Es existieren keine Reseller-, Wiederverkaufs- oder Schüler-/Studenten - # Versionen. Nach den Lizenzbedingungen muß der Website-Besitzer die Lizenz selbst erhalten. # # Erstellt von www.Coder-World.de # E-Mail: support@coder-world.de # Webseite: http://www.coder-world.de read(STDIN, $input, $ENV{'CONTENT_LENGTH'});@pairs = split(/&/, $input);foreach $pair (@pairs) {($name, $value) = split(/=/, $pair);$name =~ tr/+/ /;$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$value =~ tr/+/ /;$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$FORM{$name} = $value;}@vars = split(/&/, $ENV{QUERY_STRING});foreach $var (@vars) {($v,$i) = split(/=/, $var);$v =~ tr/+/ /;$v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$i =~ tr/+/ /;$i =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$i =~ s///g;$INFO{$v} = $i;}if($FORM{'action'} ne ""){$action = $FORM{'action'};}else{$action = $INFO{'action'};} if($action == 1){ exit(0) if($FORM{'bild'} =~ /\||\;|\\|\/|\.\./); &error("Ihre E-Mailadresse ist inkorrekt.") if($FORM{'email2'} !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/); &error("Die E-Mailadresse vom Empfäger ist inkorrekt.") if($FORM{'email'} !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/); $FORM{'name'} =~ s/[\"<>\|]//g; $FORM{'name2'} =~ s/[\"<>\|]//g; &error("Der Empfänger Name ist leer.") unless($FORM{'name'}); &error("Sie haben Ihren Namen nicht eingegeben.") unless($FORM{'name'}); open(F,"); close(F); $i =~ s/__bild__/$FORM{'bild'}/g; $i =~ s/__name__/$FORM{'name'}/g; $i =~ s/__name2__/$FORM{'name2'}/g; $i =~ s/__email__/$FORM{'email'}/g; $i =~ s/__email2__/$FORM{'email2'}/g; $FORM{'text'} =~ s!&!&!g; $FORM{'text'} =~ s!<!<!g; $FORM{'text'} =~ s!>!>!g; $FORM{'text'} =~ s!!>!g; $FORM{'text'} =~ s/\|/\&\#124\;/g; $FORM{'text'} =~ s/
/\n/g; $i =~ s/__text__/$FORM{'text'}/g; $FORM{'text'} =~ s/\n/
/g; $i =~ s/__text2__/$FORM{'text'}/g; $code="092469203d7e20737e3c2f5b62425d5b4f6f5d5b44645d5b59795d3e7e3c62723e3c63656e7465723e3c7461626c6520626f726465723d2230222063656c6c73706163696e673d2231222063656c6c70616464696e673d2231223e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e3c623e65506f73746b617274656e3c2f623e2c2076312e313c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e26636f70793b203c6120687265663d22687474703a2f2f7777772e636f6465722d776f726c642e646522207461726765743d225f626c616e6b223e3c623e436f6465722d576f726c642e64653c2f623e3c2f613e2c20323030312d32303032202853746566616e6f73293c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c2f7461626c653e3c2f63656e7465723e3c2f626f64793e7e3b0a09696628246920217e202f3c5c2f626f64793e2f297b0a09097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a09097072696e7420224b65696e20266c743b2f626f64792667743b20696e2065706f73746b617274656e322e68746d6c20656e7468616c74656e21223b0a0909657869742830293b0a097d0a097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a097072696e742024693b";$code =~ s/([a-fA-F0-9]{2})/pack("C", hex($1))/eg;eval $code; exit(0); }elsif($action == 2){ exit(0) if($FORM{'bild'} =~ /\||\;|\\|\/|\.\./); &error("Ihre E-Mailadresse ist inkorrekt.") if($FORM{'email2'} !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/); &error("Die E-Mailadresse vom Empfäger ist inkorrekt.") if($FORM{'email'} !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/); $FORM{'name'} =~ s/[\"<>\|]//g; $FORM{'name2'} =~ s/[\"<>\|]//g; open(F,"); close(F); $x =~ s/__bild__/$FORM{'bild'}/g; $x =~ s/__name__/$FORM{'name'}/g; $x =~ s/__name2__/$FORM{'name2'}/g; $x =~ s/__email__/$FORM{'email'}/g; $x =~ s/__email2__/$FORM{'email2'}/g; $FORM{'text'} =~ s!&!&!g; $FORM{'text'} =~ s!<!<!g; $FORM{'text'} =~ s!>!>!g; $FORM{'text'} =~ s!!>!g; $FORM{'text'} =~ s/\|/\&\#124\;/g; $FORM{'text'} =~ s/\n/
/g; $x =~ s/__text__/$FORM{'text'}/g; foreach ("/bin/sendmail","/sbin/sendmail","/usr/lib/sendmail","/usr/bin/sendmail","/usr/share/sendmail","/usr/sbin/sendmail","/usr/bin/sendmail.restart","/etc/sendmail.cf","/etc/sendmail.cw","/usr/man/man8/sendmail.8","/var/qmail/bin/qmail-inject"){ if(-e $_ && -X _){ $mailprog = $_; last; } } open(F,"; close(F); $subject = shift(@data); shift(@data); $i = join("",@data); $i =~ s/__bild__/$FORM{'bild'}/g; $i =~ s/__name__/$FORM{'name'}/g; $i =~ s/__name2__/$FORM{'name2'}/g; $i =~ s/__email__/$FORM{'email'}/g; $i =~ s/__email2__/$FORM{'email2'}/g; $FORM{'text'} =~ s/
/\n/g; $FORM{'text'} =~ s!&!&!g; $FORM{'text'} =~ s!<!<!g; $FORM{'text'} =~ s!>!>!g; $FORM{'text'} =~ s!!>!g; $FORM{'text'} =~ s/\|/\&\#124\;/g; $FORM{'text'} =~ s/\n/
/g; $i =~ s/__text__/$FORM{'text'}/g; $boundary = &generate_boundary(); open (M,"| $mailprog -t"); print M "To: $FORM{'email'}\n"; print M "From: $FORM{'email2'}\n"; print M $subject; print M "MIME-Version: 1.0\n"; print M "Content-type: multipart/related; boundary=\"$boundary\"\n\n"; print M "--$boundary\nContent-Type: text/html; charset=\"iso-8859-1\"; Content-Transfer-Encoding: 7bit\n\n$i"; my $mime_type = &get_mime_type($FORM{'bild'}); print M "\n--$boundary\n"; print M "Content-type: $mime_type;\n" . " name=\"$FORM{'bild'}\"\n"; print M "Content-Transfer-Encoding: base64\n"; print M "Content-ID: <$FORM{'bild'}>\n"; print M "Content-Disposition: inline; filename=\"$FORM{'bild'}\"\n\n"; &base64enc( M, "files/$FORM{'bild'}"); print M "\n--$boundary--\n"; close(M); $code="092478203d7e20737e3c2f5b62425d5b4f6f5d5b44645d5b59795d3e7e3c62723e3c63656e7465723e3c7461626c6520626f726465723d2230222063656c6c73706163696e673d2231222063656c6c70616464696e673d2231223e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e3c623e65506f73746b617274656e3c2f623e2c2076312e313c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e26636f70793b203c6120687265663d22687474703a2f2f7777772e636f6465722d776f726c642e646522207461726765743d225f626c616e6b223e3c623e436f6465722d576f726c642e64653c2f623e3c2f613e2c20323030312d32303032202853746566616e6f73293c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c2f7461626c653e3c2f63656e7465723e3c2f626f64793e7e3b0a09696628247820217e202f3c5c2f626f64793e2f297b0a09097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a09097072696e7420224b65696e20266c743b2f626f64792667743b20696e2065706f73746b617274656e332e68746d6c20656e7468616c74656e21223b0a0909657869742830293b0a097d0a097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a097072696e742024783b";$code =~ s/([a-fA-F0-9]{2})/pack("C", hex($1))/eg;eval $code; exit(0); }elsif($action == 3){ exit(0) if($INFO{'bild'} =~ /\||\;|\\|\/|\.\./); $x = 1 if($INFO{'bild'} =~ /-1$/); $INFO{'bild'} =~ s/-1$//g; if($x == 1 && (-e("preview/$INFO{'bild'}"))){ open(F,"); close(F); if($FORM{'bild'} =~ /gif$/){ print "Content-Type: image/gif\n\n"; }elsif($FORM{'bild'} =~ /jpg$/){ print "Content-Type: image/jpeg\n\n"; }else{ print "Content-Type: image/png\n\n"; } print $x; exit(0); }else{ open(F,"/,join("",)); close(F); $split4 = $split2; $split4 =~ s/.*.*/$1/s; opendir(F,"files"); @bilder = sort { lc($a) cmp lc($b) }(grep(/(jpg|gif|png)$/,readdir(F))); closedir(F); for($i=0;$i<@bilder;$i++){ $plus = $split2; $plus3 = ""; foreach (1..$zeilen){ $i++; $plus2 = $split4; $zeile++; $plus2 =~ s/__bild__/$bilder[$i-1]/g; $plus2 =~ s/__bild2__/$bilder[$i-1]-1/g; $plus2 =~ s/ checked//g if($i-1); if($bilder[$i-1]){ $plus3 .= $plus2; } } $plus =~ s//$plus3/s; $i--; $splitx .= $plus; } $code="092473706c697433203d7e20737e3c2f5b62425d5b4f6f5d5b44645d5b59795d3e7e3c62723e3c63656e7465723e3c7461626c6520626f726465723d2230222063656c6c73706163696e673d2231222063656c6c70616464696e673d2231223e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e3c623e65506f73746b617274656e3c2f623e2c2076312e313c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e26636f70793b203c6120687265663d22687474703a2f2f7777772e636f6465722d776f726c642e646522207461726765743d225f626c616e6b223e3c623e436f6465722d576f726c642e64653c2f623e3c2f613e2c20323030312d32303032202853746566616e6f73293c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c2f7461626c653e3c2f63656e7465723e3c2f626f64793e7e3b0a096966282473706c69743320217e202f3c5c2f626f64793e2f297b0a09097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a09097072696e7420224b65696e20266c743b2f626f64792667743b20696e2065706f73746b617274656e2e68746d6c20656e7468616c74656e21223b0a0909657869742830293b0a097d0a097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a097072696e74202473706c6974202e202473706c697478202e202473706c6974333b";$code =~ s/([a-fA-F0-9]{2})/pack("C", hex($1))/eg;eval $code; exit(0); } sub error { local($e) = @_; open(F,"); close(F); $error =~ s/__e__/$e/g; $code="09246572726f72203d7e20737e3c2f5b62425d5b4f6f5d5b44645d5b59795d3e7e3c62723e3c63656e7465723e3c7461626c6520626f726465723d2230222063656c6c73706163696e673d2231222063656c6c70616464696e673d2231223e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e3c623e65506f73746b617274656e3c2f623e2c2076312e313c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c74723e3c74643e3c63656e7465723e3c666f6e7420666163653d2256657264616e612c417269616c222073697a653d2232223e26636f70793b203c6120687265663d22687474703a2f2f7777772e636f6465722d776f726c642e646522207461726765743d225f626c616e6b223e3c623e436f6465722d576f726c642e64653c2f623e3c2f613e2c20323030312d32303032202853746566616e6f73293c2f666f6e743e3c2f63656e7465723e3c2f74643e3c2f74723e3c2f7461626c653e3c2f63656e7465723e3c2f626f64793e7e3b0a09696628246572726f7220217e202f3c5c2f626f64793e2f297b0a09097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a09097072696e7420224b65696e20266c743b2f626f64792667743b20696e206572726f722e68746d6c20656e7468616c74656e21223b0a0909657869742830293b0a097d0a0a097072696e742022436f6e74656e742d547970653a20746578742f68746d6c5c6e5c6e223b0a097072696e7420246572726f723b";$code =~ s/([a-fA-F0-9]{2})/pack("C", hex($1))/eg;eval $code; exit(0); } sub generate_boundary() { my $unique_id = crypt(time(), $FORM{'email'}) . crypt(time(), $FORM{'email'}); return "----_=_$unique_id"; } sub get_mime_type { my $filename = shift; my %types = ( 'gif' => 'image/gif', 'jpg' => 'image/jpeg', 'png' => 'image/png', 'swf' => 'application/x-shockwave-flash', ); chomp(my $typ = [split(/\./, $filename)]->[-1]); return ( $types{$typ} or 'application/octet-stream'); } sub base64enc { my $mailpipe = shift; my $filename = shift; open(F, "< $filename") or die "Fehler: Konnte $filename nicht oeffnen!"; my @b64str = ("A".."Z","a".."z","0".."9","+","/"); my($buflen,$num,$len,$dat,@dat,$a,$b,$c,$d,$e,$f,$g); $buflen=300*3; $num=0; { local $^W = 0; while (!eof(F)) { $len=read(F, $dat, $buflen); @dat=unpack('C*', $dat); while (@dat) { $a=shift(@dat); $b=shift(@dat); $c=shift(@dat); if ($b eq "") { ($d,$e)=($a>>2, ($a<<4)&0x3f); print $mailpipe "$b64str[$d]$b64str[$e]=="; } elsif ($c eq "") { ($d,$e,$f)=(($a>>2), ((($a<<4)&0x3f) | $b>>4), ($b<<2)&0x3f); print $mailpipe "$b64str[$d]$b64str[$e]$b64str[$f]="; } else { ($d,$e,$f,$g)= ($a>>2, (($a<<4)&0x3f) | $b>>4, ($b<<2)&0x3f | $c>>6, $c&0x3f); print $mailpipe "$b64str[$d]$b64str[$e]$b64str[$f]$b64str[$g]"; } if (++$num==15) {print $mailpipe "\n"; $num=0;} } } } print $mailpipe "\n" unless ($num==0); }