#!/usr/bin/perl
############################################################################
#
# (c) Martin Garms, 2002
# Onlineshop Meridian
#
############################################################################
############################################################################
# Globale Parameter
############################################################################
####Ermittlung und Wechsel in das aktuelle Verzeichnis
$0 =~ /^(.*)[\/\\].*/ && chdir ($1) ;
####Module und Puffer ausschalten
use CGI ;
use CGI::Carp qw(fatalsToBrowser) ;
require 'funclib.cgi' ;
$|=1 ;
####CGI-Name und Verzeichnisse
my $cgi_nam="mshop.cgi" ;
####URL-Parameter lesen
%PARA = ¶_read() ;
#&read_config("../libs") ; #CONFIG-Array einlesen aus news.config (in news.cgi)
#$htm_bas_dir=$CONFIG{'HTM_BAS_DIR'}; #Pfad bis zum index.htm der Site
#Produkteliste
@plist=(
'01_6',
'02_2',
'02_4',
'02_5',
'02_6',
'03_1',
'03_2',
'03_3',
'03_4',
'03_5',
'04_1',
'04_2',
'04_3',
'04_4',
'04_5',
'04_6',
'05_1',
'05_2',
'05_3',
'05_4',
'05_5',
'05_6',
'06_1',
'06_2',
'06_3',
'06_4',
'06_5',
'06_6',
'07_1',
'07_2',
'07_3',
'07_4',
'07_5',
'07_6',
'08_1',
'08_2',
'08_3',
'08_4',
'08_5',
'08_6',
'09_1',
'09_2',
'09_3',
'09_4',
'09_5',
'09_6',
'10_1',
'10_2',
'10_3',
'10_4',
'10_5',
'10_6',
'11_1',
'11_2',
'11_3',
'11_4',
'11_5',
'11_6',
'12_1',
'12_2',
'12_3',
'12_4',
'12_5',
'12_6',
'13_1',
'13_2',
'13_3',
'Sonderheft',
'pra',
'abo',
'porto',
'stueck',
'ustbetr',
'rchbetr'
);
$abo_zr='13/3 - 14/2'; # die ersten 4 zeichen werden zum feststellen des aktuellen Heftes benutzt (Preis!)
$pra_zr='13/3 - 13/5';
#Datenliste
@dlist=(
'anrede',
'vorname',
'name',
'strasse',
'plz',
'ort',
'land',
'tel',
'fax',
'email',
'anliegen',
'text'
) ;
#Senderadressen. Hier kann das Versenden (Z.1003ff) durch auskommentieren deaktiviert werden
$mail_to1='shop@meridian-magazin.de';
$mail_to2='meridian@interabo.de';
############################################################################
# Programmablauf
############################################################################
my $query = new CGI ;
my %FM ;
my @uid;
my @err; # Fehlerfeld, global.
my $erz=0; # Fehlerzahl
## Aufruf mit submit-Button Schritt 1.
# check_edit prueft die Eintraege und gibt ggf. Korrekturmoeglichkeit
if ($PARA{'func'} eq "show")
{
$erz=&check_edit(\$query); # \ ist referenz (Adresse!)
#$erz='';
if ($erz)
{
&html_head( 'Meridian-Shop','Korrektur') ;
&edit('','',$erz); # Fehlermeldung in Form anzeigen, neuer Versuch
$erz=0
}
else
{
&html_head( 'Meridian-Shop','Schritt 2') ;
&dat_save(); # Bestaetigungsseite anzeigen
}
&html_foot() ;
}
## Aufruf mit submit-Button des Bestaetigungs-Formulars.
elsif ($PARA{'func'} eq "send")
{
&html_head( 'Meridian-Shop','Schritt 3') ;
&r_send(); # Bestellung per Mail versenden
&html_foot() ;
}
########## Status: SUM-Datei anzeigen
elsif ($PARA{'func'} eq "status")
{
&html_head( 'Status','Summe') ;
&status() ;
&html_foot() ;
}
else
{
&html_head( 'Meridian Shop','Auswahl') ;
&edit($PARA{'fname'},$PARA{'slc'}) ; #Wenn fname uebergeben, Daten ins Form laden
&html_foot() ;
}
#===========================================================================
# FORMULAR
# Bearbeitungs-Formular erzeugen
# wenn slc==1 weren Details angezeigt
#===========================================================================
sub edit {
my $fname=$_[0]; # wenn $fname, Daten laden, sonst neu
my $slc=$_[1]; # 0 wenn erster Durchgang, 1-12 mit Details fuer Partner 1-12
#my $query_adr=$_[3]; # Rueckuebergabe Query-Adresse bei Fehler
my %FM ; # Feld fuer den Daten-Import
my @sel;
my $dir='data/';
my $msg='MSG:';
my $t;
my $z;
my $f=50; # Offset fuer @sel-Feld
my @k;
my @k1;
my $det;
#### ev. Fehlermeldungen einbauen
my $errh;
if($erz>0) # Fehlermeldungen vorhanden?
{
%FM=&parse_form(\$query) ; # Query-String mit alten Daten rueckuebergeben
$slc=$FM{'slc'};
$fname=$FM{'fname'};
# Fuer oben:
$errh='
| $titel | $titelr |
| $menue | |
EOM } ############################################################################ # HTML-Foot ############################################################################ sub html_foot { my $adminlink = ( -e "config.link" ? qq( || CONFIG) : " " ) ; print <<"EOM" ; | |
© M.Garms 2002 Script-Basis by perluntiy.de
/\n\n/ig ; $TMPL{'TEXT'}=~ s/<([^>]|\n)*>/ /g ; #Werte einsetzen #$mailtmpl =~ s/\[NEWS_(.*?)\]/$TMPL{$1}/g ; #$mailtmpl =~ s///g ; $r=&mailing($mailadr,$sender,$subject,$text) ; #$r="gesendet: $mailadr,$sender,$subject,$text"; # print "&mailing:$sender,$subject,$mailtmpl"; #return $r; } ############################################################################ # ADMIN: Das eigentliche Mailing # UNIX/Linux -> wird per Sendmail verschickt # MAIL-LOG'= 'datei' lokales speichern 'mail' versenden, anderes=off ############################################################################ sub mailing { my ($mailto,$mailfrom,$mailsub,@mailtext) = @_ ; my $fname=&date_time; #my $mprog='./usr/lib/sendmail'; #my $mprog='../usr/sbin/sendmail'; my $mprog='/usr/lib/sendmail -t'; my $r; ### #Mail per SENDMAIL unter Unix verschicken my $to='m.garms@sternwerkstatt.de'; my $from='m.garms@sternwerkstatt.de'; my $subject='testmail'; my $text='Dies ist der neue Mailtext'; my $mailprog = '/usr/lib/sendmail -t'; # Open The Mail Program open(MAIL,"|$mailprog -t"); print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n"; print MAIL "$text\n"; close (MAIL); $mailtmp=join(/ /,@mailtext) ; #open(MAIL,"|$mailprog -t"); #open(MAIL,"| $mprog -t") || die "Kann die E-Mail ueber -$mprog- nicht verschicken. Es ist eventl. der falsche sendmail-Pfad eingestellt." ; #print MAIL "To: $mailto\n"; #print MAIL "From: $mailfrom\n"; #print MAIL "Subject: $mailsub\n\n" ; #print MAIL $mailtmp ; #close (MAIL) ; } ############################################################################ # ENDE ############################################################################