#!/usr/bin/perl
#############################################################
# Administration
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Autor: Helmut Walter
# E-Mail: webmaster@inspire-net.de
# Webseite: http://www.inspire-world.de
#############################################################
use CGI::Carp qw(fatalsToBrowser);
# Dateiflock
use Fcntl qw(:DEFAULT :flock);
use CGI qw(:standard);
use CGI;
use DBI; # Falls MySQL Nutzung auskommentieren
$object = new CGI;
@names = $object->param();
%FORM = map {$_ => $object->param($_)} $object->param();
$| = 1;
##############################################################
# Cookienamen (User + Passwort) fuer Login
$toplusercookie = cookie("toplisteditor");
($edituser,$editpass,$editmail) = split(/\|/, $toplusercookie);
##############################################################
# Name des Programms
$progname = "toplist.cgi";
use lib "routinen/module/";
use Archive::FRWtools;
# Benoetigte Dateien einbinden
require "setup/setup.pl";
require "setup/extraconfig.pl";
require "routinen/module/scriptlibrary.pl";
# Toplisten ID
$tl = datensaver($FORM{'tl'});
$tl =~ s/[^0-9]//g;
&verbinden;
# Temporaere Logindaten loeschen nach 10 Min.
FRWtools::file_tmpdeleter("$cgipfad/tmpuser", "600");
$betreiberlogolink = qq~~;
##########################################################################
# Pruefung ob Toplisten ID vorhanden
my $members = $prefix . "members";
my $tlcheck = 0;
my $querycheck = "SELECT COUNT(*) as total FROM $members WHERE id ='$tl'";
$sth = $dbh->prepare($querycheck);
$sth->execute or die DBI->errstr;
($total) = $sth->fetchrow();
$sth->finish;
# und Fehler ausgebe wenn TL nicht gefunden
if ($total != 1) {
print "Content-type: text/html\n\n";
print "
Topliste nicht gefunden!
";
exit;
}
# Toplistentabellenbreitenkonfiguration
require "$htmlpfad/tl/$tl/daten/tabbreite.pl";
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Aufrufparameter der Haupt und Modulroutinen
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
$subaufrufparameter = $FORM{'aktion'};
if (($subaufrufparameter eq '' && $subaufrufroutine eq '')) {
&newsite;
}
elsif (($subaufrufparameter ne '' && $subaufrufroutine eq '')) {
&$subaufrufparameter;
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Startbildschirm neue Seite anmelden
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub newsite {
$sektionstitel = "Neue Seite anmelden";
&Headerout;
# Seitenheader ausgeben# ###########################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
##########################################################################
# Konfigurationsdaten holen
my $konfiguration = $prefix . "konfiguration";
my $sth = $dbh->prepare("SELECT * FROM $konfiguration WHERE mem_id = '$tl'");
my $isc = $sth->execute or die DBI->errstr;
@confdata = $sth->fetchrow_array();
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# conf_id mem_id toptitel maxlist sperrtime maxbanner gateway sotm reset renew mailnew fschalt mbwidth mbheight regeln implinktext implink
$sth->finish; # Fertig
##########################################################################
$toplistenanmelderegeln = codewandler($confdata[14]);
$backtotoplist = qq~Zurueck zur Topliste~;
$maxb = $confdata[12];
$maxh = $confdata[13];
# $linkcodeoutput = get_tlcode("4","1");
print qq~
";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Neuen Toplisteneintrag speichern
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub savenew {
# Toplist ID
$tl = datensaver($FORM{'tl'});
$tl =~ s/[^0-9]//g;
$entryuser = datensaver($FORM{'entryuser'});
$entrymail = datensaver($FORM{'entrymail'});
$hpname = datensaver($FORM{'hpname'});
$linkurl = datensaver($FORM{'linkurl'});
$bannerurl = datensaver($FORM{'bannerurl'});
$hptext = datensaver($FORM{'hptext'});
$bannerwidth = datensaver($FORM{'bannerwidth'});
$bannerheight = datensaver($FORM{'bannerheight'});
$entrymail = lc($entrymail);
# Check Mail
if ($entrymail ne '') {
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("SELECT COUNT(*) FROM $toplistendaten WHERE entrymail = '$entrymail' AND inhaber_id = '$tl'");
$sth->execute or die DBI->errstr;
($totalmail) = $sth->fetchrow();
$vorhandenmail = $totalmail > 0 ? 1 : 0;
$sth->finish; # Fertig
}
# Check Username
if ($entryuser ne '') {
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("SELECT COUNT(*) FROM $toplistendaten WHERE entryuser = '$entryuser' AND inhaber_id = '$tl'");
$sth->execute or die DBI->errstr;
($totaluser) = $sth->fetchrow();
$vorhandenuser = $totaluser > 0 ? 1 : 0;
$sth->finish; # Fertig
}
# URL vervollstaendigen wenn noetig
if ($linkurl && $linkurl =~ /^http:\/\//){
$linkurl = "$linkurl";
} elsif ($linkurl) {
$linkurl = "http://$linkurl";
}
if ($bannerurl && $bannerurl =~ /^http:\/\//){
$bannerurl = "$bannerurl";
} elsif ($bannerurl) {
$bannerurl = "http://$bannerurl";
}
$bannerwidth = $bannerwidth > 468 ? 468 : $bannerwidth;
$bannerheight = $bannerheight > 60 ? 60 : $bannerheight;
# Fehlerpruefung
$fehlermeldung = "";
$fehler_gefunden = "";
# -----------------------------------------------------------------------
$errormeldung = "Es existiert schon ein Benutzer mit der angegebenen E-Mail Adresse.\n" ;
if ($vorhandenmail) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Es existiert schon ein Benutzer mit dem angegebenen Benutzernamen. Bitte wählen Sie einen anderen\n" ;
if ($vorhandenuser) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Benutzername\" wurde nicht oder nicht mit korrekten Daten ausgefüllt. Es sind nur Buchstaben und Zahlen zugelassen. Mindestens 3 Zeichen lang muss der Benutzername sein.\n" ;
if (($entryuser !~ m/^([a-zA-ZäöüÄÖÜß0-9]{2,}|[a-zA-ZäöüÄÖÜß0-9_\-\s]{2,})$/ && length($entryuser) < 3 )) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Bitte geben Sie eine gültige E-Mail Adresse ein.\n";
if ($entrymail !~ /^([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]*)$/) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Webseitentitel\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if ($hpname eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Webseitenurl\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if (length($linkurl) < 12) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Wenn Sie das Feld \"Bannerurl\" ausfüllen müssen Sie auch eine Bannerbreite angeben\n" ;
if (length($bannerurl) > 11 && $bannerwidth eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Wenn Sie das Feld \"Bannerurl\" ausfüllen müssen Sie auch eine Bannerhöhe angeben\n" ;
if (length($bannerurl) > 11 && $bannerheight eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Webseiten Beschreibung\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if ($hptext eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
# -----------------------------------------------------------------------
if ($fehler_gefunden) {
&fehlerausgabetoplist;
exit;
} else {
if (length($bannerurl) < 11) {
$bannerurl = '';
$bannerwidth = '';
$bannerheight = '';
}
##########################################################################
# Konfigurationsdaten holen
my $konfiguration = $prefix . "konfiguration";
my $sth = $dbh->prepare("SELECT * FROM $konfiguration WHERE mem_id = '$tl'");
my $isc = $sth->execute or die DBI->errstr;
@confdata = $sth->fetchrow_array();
$sth->finish; # Fertig
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# conf_id mem_id toptitel maxlist sperrtime maxbanner gateway sotm reset renew mailnew fschalt mbwidth mbheight regeln implinktext implink
##########################################################################
# Speichern der Daten und erzeugen eines Passwortes
$passworttl = FRWtools::pw_gen("8", "3", "0");
$entrydatelang = datumsroutine("HJ");
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("INSERT INTO $toplistendaten (toplist_id, inhaber_id, linkurl, bannerurl, bannerwidth, bannerheight, hpname, hptext, entryuser, entrymail, entrypass, entrydate, hitin, hitout, free) VALUES('', '$tl', '$linkurl', '$bannerurl', '$bannerwidth', '$bannerheight', '$hpname', '$hptext', '$entryuser', '$entrymail', '$passworttl', '$entrydatelang', '0', '0', '$confdata[11]')");
$sth->execute or die DBI->errstr;
$sth->finish; # Fertig
if ($confdata[11] == 0) {
$freischalttext = qq~
Bitte beachten Sie das ihr Eintrag vom Toplisteninhaber freigeschaltet werden muss.
Dieses geschieht erst, nachdem Sie den Bannercode eingebaut haben, damit Ihre clicks gezaehlt werden koennen.
Mit der Freischaltung erhalten Sie eine weitere Mail mit ihren Zugangsdaten.~;
$benutzerstatus = "Noch nicht freigeschaltet!";
$pwst = "Wird Ihnen bei Freischaltung mitgeteilt";
} else {
$freischalttext = '';
$benutzerstatus = "Toplisteneintrag freigeschaltet!";
$pwst = $passworttl;
}
my $members = $prefix . "members";
my $sth = $dbh->prepare("SELECT id, vorname, name, email, hpurl, regdate, username, free FROM $members WHERE id = '$tl'");
$sth->execute or die DBI->errstr;
@viewmem = $sth->fetchrow_array();
# id vorname name email hpurl regdate username passwort newpw free
$sth->finish; # Fertig
############################################################################################
# Mail an User senden mit Status ob freigeschaltet oder nicht
my $mailbodyt = <\n";
print MAIL "To: $entrymail ($entryuser)\n";
print MAIL "From: $viewmem[3] ($viewmem[1] $viewmem[2])\n";
print MAIL "Subject: Ihre Registrierung in unserer Topliste\n\n";
print MAIL "$mailbodyt\n\n";
close MAIL;
############################################################################################
# Mail an Admin senden wegen Freischaltung oder Benachrichtigung
if (($confdata[11] == 0) || ($confdata[10] == 1)) {
if ($confdata[11] == 0) {
$adminfreetext = qq~Um den Nutzer freizuschalten rufen Sie bitte die Administration auf:
$cgiverzeichnis/login.cgi
Dort koennen Sie dann den Benutzer freischalten oder loeschen.~;
$freizuschalten = "freizuschalten";
} else {
$adminfreetext = qq~Die angegebenen Benutzerdaten:
Benutzername: $entryuser
E-Mail: $entrymail
HP Name: $hpname
HP URL: $linkurl
Banner URL: $bannerurl
HP-Beschreibung:
$hptext
~;
$freizuschalten = '';
}
my $mailbodyadmin = <\n";
print MAIL "To: $viewmem[3] ($viewmem[1] $viewmem[2])\n";
print MAIL "From: $viewmem[3] ($viewmem[1] $viewmem[2])\n";
print MAIL "Subject: Neuer Benutzer in ihrer Topliste $freizuschalten\n\n";
print MAIL $mailbodyadmin;
close MAIL;
}
my $toplistendaten = $prefix . "toplisten";
$querylastid = "SELECT LAST_INSERT_ID() FROM $toplistendaten";
my $sth = $dbh->prepare($querylastid);
$sth->execute or die DBI->errstr;
($mysqllastid) = $sth->fetchrow();
$sth->finish; # Fertig
# Topliste neu schreiben
require "routinen/toplist.pl";
&toplistgen($confdata[1]);
############################################################################################
$sektionstitel = "Anmeldung abgeschlossen";
&Headerout;
# Seitenheader ausgeben# ###########################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
$backtotoplist = qq~Zurueck zur Topliste~;
$voteauswahl = "Bitte wählen Sie aus den unten angezeigten Votingcodes einen aus und bauen Sie diesen unverändert in ihre Webseite ein.ACHTUNG! Sie muessen sich den Bannercode unbedingt von hier kopieren, da er Ihnen NICHT erneut angezeigt wird!!";
$fschaltorsofort = $confdata[11] == 1 ? "Ihre Daten wurden gespeichert.
Sie erhalten nun auch eine E-Mail mit den Zugangsdaten zur Topliste. Ihr Eintrag erscheint bei der nächsten Toplistenaktualisierung.
$voteauswahl" : "Ihre Daten wurden gespeichert.
Der Administrator der Topliste hat diese so eingestellt das neue Anmeldungen erst nach Kontrolle des Backlinks und anschließender Freischaltung in der Topliste erscheinen.ACHTUNG! Sie muessen sich den Bannercode unbedingt von hier kopieren, da er Ihnen NICHT erneut angezeigt wird!!
$voteauswahl";
$anmeldestatustext = "$fschaltorsofort";
$linkcodeoutput = get_tlcode("$tl","$mysqllastid");
print "\n";
print tparser("$cgipfad/toplisttemplates/anmeldebestaetigung.html");
print "
";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Startbildschirm Eintrag editieren
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub edit {
$sektionstitel = "Login Eintrag editieren";
&Headerout;
# Seitenheader ausgeben #############################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
$backtotoplist = qq~Zurueck zur Topliste~;
print qq~
";
print qq~
\n
";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Logincheck nach Login
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub logincheck {
my $tl = datensaver($FORM{'tl'});
my $loginuser = datensaver($FORM{'loginuser'});
my $loginpass = datensaver($FORM{'loginpass'});
$loginmeldungstext = "Keine oder falsche Daten eingegeben!";
my $statusfound = 0;
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("SELECT toplist_id, entryuser, entrymail, entrypass FROM $toplistendaten WHERE entryuser = '$loginuser' AND entrypass = '$loginpass' AND inhaber_id = '$tl'");
my $isl = $sth->execute or die DBI->errstr;
my $summelo = $isl eq "0E0" ? 0 : $isl;
@testmem = $sth->fetchrow_array();
$sth->finish; # Fertig
if ($summelo != 1) {
edit($loginmeldungstext);
exit;
}
if (($loginuser eq $testmem[1]) && ($loginpass eq $testmem[3])) {
print "Set-Cookie: toplisteditor=$loginuser|$loginpass|$testmem[2];\n";
FRWtools::writelinie("$loginuser|$loginpass|$testmem[0]|$testmem[2]|$tl", "$cgipfad/tmpuser/$testmem[2].dat");
print "Location: $cgiverzeichnis/$progname?aktion=editentry&tl=$tl \n\n";
} else {
$loginmeldungstext = "Keine oder falsche Daten eingegeben!";
edit($loginmeldungstext);
exit;
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Eintrag editieren
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub editentry {
$tl = datensaver($FORM{'tl'});
$loginok = 0;
if (-e "$cgipfad/tmpuser/$editmail.dat") {
@checkdaten = FRWtools::DateialsZeile("$cgipfad/tmpuser/$editmail.dat");
$loginok = 1;
# $loginuser|$loginpass|$testmem[0]|$testmem[3]|$tl
}
# Fehlerpruefung
$fehlermeldung = "";
$fehler_gefunden = "";
# -----------------------------------------------------------------------
$errormeldung = "Es wurden keine Logindaten gefunden\n" ;
if ($loginok != 1) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
# -----------------------------------------------------------------------
if ($fehler_gefunden) {
&fehlerausgabetoplist;
exit;
}
$sektionstitel = "Eintrag editieren";
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("SELECT toplist_id,inhaber_id,linkurl,bannerurl,bannerwidth,bannerheight,hpname,hptext FROM $toplistendaten WHERE entryuser = '$checkdaten[0]' AND entrypass = '$checkdaten[1]' AND inhaber_id = '$checkdaten[4]'");
$sth->execute or die DBI->errstr;
@editdaten = $sth->fetchrow_array();
$sth->finish; # Fertig
##########################################################################
# Konfigurationsdaten holen
my $konfiguration = $prefix . "konfiguration";
my $sth = $dbh->prepare("SELECT mbwidth, mbheight FROM $konfiguration WHERE mem_id = '$tl'");
my $isc = $sth->execute or die DBI->errstr;
@confdata = $sth->fetchrow_array();
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# conf_id mem_id toptitel maxlist sperrtime maxbanner gateway sotm reset renew mailnew fschalt mbwidth mbheight regeln implinktext implink
$sth->finish; # Fertig
##########################################################################
&Headerout;
# Seitenheader ausgeben #############################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
$backtotoplist = qq~Zurueck zur Topliste~;
$linkcodeoutput = get_tlcode("$tl","$editdaten[0]");
$maxb = $confdata[1];
$maxh = $confdata[2];
print qq~
\n
";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Editierten Toplisteneintrag speichern
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub saveedit {
# Toplist ID
$tl = datensaver($FORM{'tl'});
$tl =~ s/[^0-9]//g;
$tlid = datensaver($FORM{'tlid'});
$tlid =~ s/[^0-9]//g;
$hpname = datensaver($FORM{'hpname'});
$linkurl = datensaver($FORM{'linkurl'});
$bannerurl = datensaver($FORM{'bannerurl'});
$hptext = datensaver($FORM{'hptext'});
$bannerwidth = datensaver($FORM{'bannerwidth'});
$bannerheight = datensaver($FORM{'bannerheight'});
# URL vervollstaendigen wenn noetig
if ($linkurl && $linkurl =~ /^http:\/\//){
$linkurl = "$linkurl";
} elsif ($linkurl) {
$linkurl = "http://$linkurl";
}
if ($bannerurl && $bannerurl =~ /^http:\/\//){
$bannerurl = "$bannerurl";
} elsif ($bannerurl) {
$bannerurl = "http://$bannerurl";
}
$bannerwidth = $bannerwidth > 468 ? 468 : $bannerwidth;
$bannerheight = $bannerheight > 60 ? 60 : $bannerheight;
# Fehlerpruefung
$fehlermeldung = "";
$fehler_gefunden = "";
# -----------------------------------------------------------------------
$errormeldung = "Das Feld \"Webseitentitel\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if ($hpname eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Webseitenurl\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if (length($linkurl) < 12) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Wenn Sie das Feld \"Bannerurl\" ausfüllen müssen Sie auch eine Bannerbreite angeben\n" ;
if (length($bannerurl) > 11 && $bannerwidth eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Wenn Sie das Feld \"Bannerurl\" ausfüllen müssen Sie auch eine Bannerhöhe angeben\n" ;
if (length($bannerurl) > 11 && $bannerheight eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Das Feld \"Webseiten Beschreibung\" wurde nicht oder nicht mit korrekten Daten ausgefüllt.\n" ;
if ($hptext eq '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
# -----------------------------------------------------------------------
if ($fehler_gefunden) {
&fehlerausgabetoplist;
exit;
} else {
if (length($bannerurl) < 11) {
$bannerurl = '';
$bannerwidth = '';
$bannerheight = '';
}
# Speichern der Daten
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("UPDATE $toplistendaten SET linkurl = '$linkurl', bannerurl = '$bannerurl', bannerwidth = '$bannerwidth', bannerheight = '$bannerheight', hpname = '$hpname', hptext = '$hptext' WHERE toplist_id = '$tlid' AND inhaber_id = '$tl'");
$sth->execute or die DBI->errstr;
$sth->finish; # Fertig
unlink("$cgipfad/tmpuser/$editmail.dat");
print "Location: $htmlverz/tl/$tl/index.html \n\n";
exit;
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Vergessene Zugangsdaten zusenden
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub reminder {
# Toplist ID
$tl = datensaver($FORM{'tl'});
$tl =~ s/[^0-9]//g;
my $usermail = datensaver($FORM{'usermail'});
$usermail = lc($usermail);
# Check Mail
if ($usermail ne '') {
my $toplistendaten = $prefix . "toplisten";
my $sth = $dbh->prepare("SELECT entryuser, entrymail, entrypass FROM $toplistendaten WHERE entrymail = '$usermail' AND inhaber_id = '$tl' AND free = 1 LIMIT 1");
my $vorhanden = $sth->execute or die DBI->errstr;
$summev = $vorhanden eq "0E0" ? 0 : $vorhanden;
@senddata = $sth->fetchrow_array();
}
# Fehlerpruefung
$fehlermeldung = "";
$fehler_gefunden = "";
# -----------------------------------------------------------------------
$errormeldung = "Bitte geben Sie eine gültige E-Mail Adresse ein.\n";
if ($usermail !~ /^([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]*)$/) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "Es konnten keine passenden Daten zu der angegebenen E-Mail Adresse gefunden werden.\n";
if ($summev != 1 && $usermail ne '') {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
# -----------------------------------------------------------------------
if ($fehler_gefunden) {
&fehlerausgabetoplist;
exit;
} else {
############################################################################################
# Mail an User senden mit Zugangsdaten
my $mailbodyt = <\n";
print MAIL "To: $senddata[1] ($senddata[0])\n";
print MAIL "From: $senddata[1] ($senddata[0])\n";
print MAIL "Subject: Ihre Zugansdaten zu unserer Topliste\n\n";
print MAIL "$mailbodyt\n\n";
close MAIL;
############################################################################################
$sektionstitel = "Zugangsdaten wurden gesendet";
&Headerout;
# Seitenheader ausgeben# ###########################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
$backtotoplist = qq~Zurueck zur Topliste~;
print "\n";
print tparser("$cgipfad/toplisttemplates/sendebestaetigung.html");
print "
\n";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Fehlermeldungen ausgeben
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub fehlerausgabetoplist {
$sektionstitel = "Fehler festgestellt!";
&Headerout;
# Seitenheader ausgeben #############################################
my @head = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/header.txt");
my $hedat = join('', @head);
$userheadercode = $hedat;
$tltitle = $sektionstitel;
$tlidcss = "$htmlverz/tl/$tl/$tl";
print tparser("$cgipfad/toplisttemplates/header.html");
# Seitenheader ausgeben #############################################
print "\n";
print tparser("$cgipfad/toplisttemplates/fehlerausgabe.html");
print "
\n";
# Footer ausgeben ###################################################
my @foot = FRWtools::DateialsArray("$htmlpfad/tl/$tl/daten/footer.txt");
my $fodat = join('', @foot);
$userfootercode = $fodat;
print tparser("$cgipfad/toplisttemplates/footer.html");
# Footer ausgeben ###################################################
exit;
}
$dbh->disconnect;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Messagecode umwandeln zu HTML
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub codewandler {
my $messagecontent = shift;
$messagecontent =~ s/(\[B\])(.+?)(\[\/B\])/$2<\/b>/isg;
$messagecontent =~ s/(\[I\])(.+?)(\[\/I\])/$2<\/I>/isg;
$messagecontent =~ s/(\[U\])(.+?)(\[\/U\])/$2<\/U> /isg;
$messagecontent =~ s/(\[CENTER\])(.+?)(\[\/CENTER\])/