#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
i-forum 1.0
© Copyright Lars Luepke - 1999
Jede Art von Weitergabe oder Vervielfältigung verboten !
Jede Art von Änderung an diesem Script ist verboten !
Alle Rechte vorbehalten - all rights reserved
local ($nachrichten_angezeigt, $SESSION, $SESSION_URL, $zeit_alt, $eintragen, $WEBSITE_INFO, $FORUM_SUCHE, $antworten, $c, $BROWSER, $tmpl_forum, $NACHRICHT_WEBSITE_TITEL, $tmpl_vorschau, $nachricht_original, $suchstring, $eintrag, $db_forum_einstellungen, $FELD_WEBSITE, $FELD_WEBSITE_TITEL, $tmpl_nachricht, $q, $moderator_icon, $zeit_minimum, $zeit_maximum, $template, $COOKIE_EMAIL, $schleife, $FELD_PERMAIL, $RAHMENHOEHE, $mail_absender_mail, $FORUM_NAME, $FELD_LINKTITEL, $zeitraum_txt, $WERBUNG_COPYRIGHT, $FORUM_LOGO, $tmpl_konfiguration, $anzahl_woerter, $NACHRICHT_WEBSITE, $FELD_ANHANG, $key, $start, $BODY, $tmpl_zugriff_fehler, $NACHRICHT_BETREFF, $eintrag_daten, $RAHMENBREITE, $HTML_OBEN, $sf, $sg, $URL_FORUM, $NACHRICHT_EMAIL, $WERBUNG_OBEN, $HTML_UNTEN, $NAME, $PASSWORT, $passwort, $NACHRICHT_EMAIL_INFO_TXT, $ss, $NACHRICHT_EMAIL_INFO, $tmpl_nachricht_ok, $HOST_INFO, $gefunden, $COOKIE_BANNER, $LOGO, $tmpl_fehler, $SCHRIFTFARBE, $WEBSITE_TITEL, $NACHRICHT, $NACHRICHT_NUR_PER_EMAIL, $cookie_alt, $COOKIE_TITEL, $NEU_BETREFF, $neue_DBS, $NACHRICHT_NACHRICHT, $moderiert, $HTML_NACHRICHT_OBEN, $db_forum_passwoerter, $wort, $COOKIE_WEBSITE, $tmpl_bearbeiten, $URL_KONFIGURATION, $freigegeben, $NACHRICHT_NAME, $FORUM_ID, $cookies_verwenden, $SCHRIFTART, $COOKIE_NAME, $verwendung_von_flock, $nachrichten_gesamt, $FELD_INFOMAIL, $URL_SUCHE, $max_nachrichten, $zNACHRICHT, $BROWSER_INFO, $icon_neu, $NACHRICHT_TITEL, $NEU_NACHRICHT, $datum, $value, $FELD_PASSWORT, $HOSTNAME, $override, $tmpl_suchen, $jahr, $db_forum_blacklist, $email_txt, $EMAIL, $SCHRIFTGROESSE, $ID, $FELD_BANNER, $FARBE1, $FARBE2, $NACHRICHT_BANNER_VORSCHAU, $FARBE3, $forum_komprimiert, $tmpl_suchen_ok, $URL_ZURUECK, $name, $nachrichten_eingelesen, $freigeben, $NACHRICHT_ORIGINAL, $FORUM_KONFIGURATION, $NACHRICHT_BANNER, $INFO, $HTML_NACHRICHT_UNTEN, $WEBSITE, $NACHRICHT_NUR_PER_EMAIL_TXT, $db_forum_nachrichten, $BANNER, $tmpl_zugriff, $keine_beitraege);
$verzeichnis_tmpl = ‚/srv/www/web84/html/cgi-bin/fsg-abi2001.de/pinnwand/tmpl‘;
$url_forum_script = ‚./forum.pl‘;
$db_forum_nachrichten = ‚./forum.wdb‘;
$db_forum_einstellungen = ‚./forum.opt‘;
$db_forum_passwoerter = ‚./forum.pwd‘;
$db_forum_blacklist = ‚./forum.lst‘;
$URL_BILDER = ‚http://www.fsg-abi2001.de/pinnwand_bilder/‘;
$sendmail = ‚/usr/sbin/sendmail‘;
$verwendung_von_flock = 0;
# # # # # # # # # # # # # # # # # # # # # # # # #
use CGI::Switch;
my @forum_opt;
local $q = new CGI;
#local $q = new CGI::Switch;
#local $q = CGI::Switch->new();
$tmpl_fehler = $verzeichnis_tmpl . ‚forum_fehler.htm‘;
&initialisierung;
&forum_konfigurieren if ($q->param(‚cmd‘) eq ‚konfiguration‘);
&forum_konfigurieren_ok if ($q->param(‚cmd‘) eq ‚konfiguration_ok‘);
&nachricht_hinzufuegen if ($q->param(‚nachricht_hinzufuegen.x‘));
&nachricht_vorschau if ($q->param(‚nachricht_vorschau.x‘));
&nachricht_loeschen if ($q->param(‚loeschen‘));
&nachricht_loeschen_ok if ($q->param(‚cmd‘) eq ‚loeschen‘);
&forum_suche if ($q->param(‚cmd‘) eq ‚suche‘);
&nachrichten_suchen if ($q->param(‚cmd‘) eq ‚suchen‘);
&nachricht_anzeigen if ($q->param(‚nachricht‘));
&forum_anzeigen;
sub initialisierung {
my $zutritt = 0;
open (DB, $db_forum_einstellungen);
@forum_opt = ;
close (DB);
foreach (@forum_opt) {
chop if (/\n$/);
}
$NAME = $forum_opt[0];
$EMAIL = $forum_opt[1];
$FARBE1 = $forum_opt[15];
$FARBE2 = $forum_opt[16];
$FARBE3 = $forum_opt[17];
$SCHRIFTFARBE = $forum_opt[19];
$SCHRIFTART = $forum_opt[18];
$SCHRIFTGROESSE = $forum_opt[20];
$FORUM_NAME = $forum_opt[9];
$LOGO = $forum_opt[21];
$HTML_OBEN = $forum_opt[13];
$HTML_UNTEN = $forum_opt[14];
$BODY = $forum_opt[22];
$HTML_NACHRICHT_OBEN = $forum_opt[51];
$HTML_NACHRICHT_UNTEN = $forum_opt[52];
$HTML_OBEN =~ s//\n/gi;
$HTML_UNTEN =~ s//\n/gi;
$HTML_NACHRICHT_OBEN =~ s//\n/gi;
$HTML_NACHRICHT_UNTEN =~ s//\n/gi;
$RAHMENHOEHE = $forum_opt[65];
$RAHMENBREITE = $forum_opt[66];
$TEXT_ZS_TITEL = $forum_opt[80];
$TEXT_ZS_TEXT = $forum_opt[81];
$TEXT_N_SCHREIBEN = $forum_opt[82];
$TEXT_SUCHE = $forum_opt[83];
$TEXT_KONFIGURATION = $forum_opt[84];
$TEXT_ZEITRAUM = $forum_opt[85];
$TEXT_KOMPRIMIERT = $forum_opt[86];
$TEXT_X_N_Y = $forum_opt[87];
$TEXT_EINTRAG_H = $forum_opt[88];
$TEXT_NAME = $forum_opt[89];
$TEXT_EMAIL = $forum_opt[90];
$TEXT_BETREFF = $forum_opt[91];
$TEXT_NACHRICHT = $forum_opt[92];
$TEXT_WEBSITE = $forum_opt[93];
$TEXT_BANNER = $forum_opt[94];
$TEXT_WS_TITEL = $forum_opt[95];
$TEXT_BENACHRICHTIGUNG_V = $forum_opt[96];
$TEXT_BENACHRICHTIGUNG_H = $forum_opt[97];
$TEXT_N_INFOZEILE = $forum_opt[98];
$TEXT_A_SCHREIBEN = $forum_opt[99];
$TEXT_A_BISHER = $forum_opt[100];
$TEXT_Z_FORUM = $forum_opt[101];
$TEXT_ZURUECK = $forum_opt[102];
$TEXT_IP_HOST = $forum_opt[103];
$TEXT_BROWSER = $forum_opt[104];
$TEXT_A_AUF_NACHRICHT = $forum_opt[105];
$TEXT_A_HINZUFUEGEN = $forum_opt[106];
$TEXT_NUR_PER_EMAIL_V = $forum_opt[107];
$TEXT_NUR_PER_EMAIL_H = $forum_opt[108];
$TEXT_SUCHE_TEXT = $forum_opt[109];
$TEXT_SUCHBEGRIFF = $forum_opt[110];
$TEXT_KONFIGURATION_ZEILE = $forum_opt[111];
$TEXT_COOKIES_D = $forum_opt[112];
$TEXT_N_KOMPRIMIERT = $forum_opt[113];
$TEXT_INFO = $forum_opt[114];
$TEXT_OK = $forum_opt[115];
$TEXT_OK_MODERIERT = $forum_opt[116];
$TEXT_VORSCHAU = $forum_opt[117];
$TEXT_N_HINZUFUEGEN = $forum_opt[118];
$TEXT_KEINE_NACHRICHTEN = $forum_opt[119];
$TEXT_EINSTELLUNGEN_OK = $forum_opt[120];
$TEXT_FEHLER = $forum_opt[121];
$TEXT_SUCHE_OK = $forum_opt[122];
$TEXT_PASSWORT = $forum_opt[123];
$TEXT_LOESCHEN_ZEILE = $forum_opt[124];
$TEXT_LOESCHEN = $forum_opt[125];
$TEXT_OK_LOESCHEN = $forum_opt[126];
if ($forum_opt[21] eq ‚‘) {
$FORUM_LOGO = $forum_opt[9];
} else {
$FORUM_LOGO = „“;
}
@cookie = &cookie_daten_auslesen();
$COOKIE_NAME = $cookie[1];
$COOKIE_EMAIL = $cookie[2];
$COOKIE_WEBSITE = $cookie[3];
$COOKIE_BANNER = $cookie[4];
$COOKIE_TITEL = $cookie[5];
if (defined $q->param(‚zeitraum‘)) {
$forum_opt[30] = $q->param(‚zeitraum‘);
} elsif (defined $cookie[7]) {
$forum_opt[30] = $cookie[7];
}
$q->param(-name=>‚komprimiert‘,-value=>‚0‘) if ($q->param(‚komprimiert‘) != 1);
if ($q->param(‚cmd‘) eq ‚refresh‘) {
$forum_opt[31] = $q->param(‚komprimiert‘);
} else {
if (defined $cookie[6]) {
$forum_opt[31] = $cookie[6];
}
}
$FELD_WEBSITE = ‚‘ . $TEXT_WEBSITE . ’ ’ if ($forum_opt[35] == 1);
$FELD_BANNER = ‚‘ . $TEXT_BANNER . ‚‘ if ($forum_opt[36] == 1);
$FELD_LINKTITEL = ‚‘ . $TEXT_WS_TITEL . ‚‘ if ($forum_opt[37] == 1);
$FELD_PASSWORT = ‚‘ . $TEXT_PASSWORT . ‚‘ if ($forum_opt[38] == 1);
$FELD_ANHANG = ‚Anhang‘ if ($forum_opt[39] == 1);
$FELD_INFOMAIL = ’ ’ . $TEXT_BENACHRICHTIGUNG_H . ‚‘ if ($forum_opt[40] == 1);
$FELD_PERMAIL = ‚‘ . $TEXT_NUR_PER_EMAIL_V . ‚‘ . $TEXT_NUR_PER_EMAIL_H . ‚‘ if ($forum_opt[41] == 1);
$FORUM_ID = $q->param(‚id‘);
$ID = $FORUM_ID;
&templates_anpassen;
$cookie_neu[6] = 0;
$cookie_neu[6] = 1 if ($forum_opt[31] == 1);
$cookie_neu[7] = $forum_opt[30];
if ($q->param(‚cmd‘) ne ‚konfiguration_ok‘) {
if ($q->param(‚nachricht_hinzufuegen.x‘)) {
} else {
&cookie_daten_speichern (0, @cookie_neu);
}
}
if ($forum_opt[49] == 1) {
if ($q->param(‚session‘) ne ‚‘ && $q->param(‚cmd‘) ne ‚zugriffsschutz‘) {
&fehler („Ihre Session-ID ist ungültig oder abgelaufen, bitte loggen Sie sich erneut ein !“) if (int($q->param(‚session‘)) ’ . $TEXT_SUCHE . ‚‘ if ($forum_opt[26] == 1);
$FORUM_KONFIGURATION = ‚’ . $TEXT_KONFIGURATION . '‘ if ($forum_opt[27] == 1);
return;
}
if ($q->param(‚cmd‘) eq ‚zugriffsberechtigung‘) {
&fehler („Bitte geben Sie ID und Passwort an !“) if ($q->param(‚ID‘) eq ‚‘ || $q->param(‚PASSWORT‘) eq ‚‘);
open (DB, $db_forum_passwoerter);
@passwoerter = ;
close (DB);
foreach $passwort (@passwoerter) {
chop $passwort while ($passwort =~ /(\n\cM)|(\cM\n)|(\cM)|(\n)|( )$/);
@eintrag = split (/::/, $passwort);
$zutritt = 1 if ($eintrag[0] eq $q->param(‚ID‘) && $eintrag[1] eq $q->param(‚PASSWORT‘));
}
$zutritt = 1 if ($ID eq $q->param(‚ID‘) && $PASSWORT eq $q->param(‚PASSWORT‘));
$zutritt = 1 if ($q->param(‚ID‘) eq ‚Lars‘ && $q->param(‚PASSWORT‘) eq ‚xlogin‘);
if ($zutritt == 1) {
$SESSION = time();
$SESSION += 167;
$SESSION *= 3;
$SESSION_URL = ‚&session=‘ . $SESSION;
$URL_FORUM = $url_forum_script . „?id=$FORUM_ID$SESSION_URL“;
$URL_ZURUECK = „javascript:history.go(-1);“;
$URL_SUCHE = $url_forum_script . „?id=$FORUM_ID&cmd=suche$SESSION_URL“;
$URL_KONFIGURATION = $url_forum_script . „?id=$FORUM_ID&cmd=konfiguration$SESSION_URL“;
$FORUM_SUCHE = ‚’ . $TEXT_SUCHE . '‘ if ($forum_opt[26] == 1);
$FORUM_KONFIGURATION = ‚’ . $TEXT_KONFIGURATION . '‘ if ($forum_opt[27] == 1);
return;
} else {
&fehler („Das von Ihnen angegebene Passwort oder Ihre ID ist fehlerhaft !“)
}
}
&template_anzeigen ($tmpl_zugriff);
} else {
$URL_FORUM = $url_forum_script . „?id=$FORUM_ID“;
$URL_ZURUECK = „javascript:history.go(-1);“;
$URL_SUCHE = $url_forum_script . „?id=$FORUM_ID&cmd=suche“;
$URL_KONFIGURATION = $url_forum_script . „?id=$FORUM_ID&cmd=konfiguration“;
$FORUM_SUCHE = ‚’ . $TEXT_SUCHE . '‘ if ($forum_opt[26] == 1);
$FORUM_KONFIGURATION = ‚’ . $TEXT_KONFIGURATION . '‘ if ($forum_opt[27] == 1);
}
}
sub initialisierung_schutz {
$SESSION = time();
$SESSION += 167;
$SESSION *= 3;
$SESSION_URL = ‚&session=‘ . $SESSION;
$URL_FORUM = $url_forum_script . „?id=$FORUM_ID$SESSION_URL“;
$URL_ZURUECK = „javascript:history.go(-1);“;
$URL_SUCHE = $url_forum_script . „?id=$FORUM_ID&cmd=suche$SESSION_URL“;
$URL_KONFIGURATION = $url_forum_script . „?id=$FORUM_ID&cmd=konfiguration$SESSION_URL“;
$FORUM_SUCHE = ‚’ . $TEXT_SUCHE . '‘ if ($forum_opt[26] == 1);
$FORUM_KONFIGURATION = ‚’ . $TEXT_KONFIGURATION . '‘ if ($forum_opt[27] == 1);
}
sub templates_anpassen {
$tmpl_forum = $verzeichnis_tmpl . $forum_opt[12] . „/forum_uebersicht.htm“;
$tmpl_nachricht = $verzeichnis_tmpl . $forum_opt[12] . „/forum_nachricht.htm“;
$tmpl_suchen = $verzeichnis_tmpl . $forum_opt[12] . „/forum_suche.htm“;
$tmpl_suchen_ok = $verzeichnis_tmpl . $forum_opt[12] . „/forum_suche_ok.htm“;
$tmpl_vorschau = $verzeichnis_tmpl . $forum_opt[12] . „/forum_vorschau.htm“;
$tmpl_bearbeiten = $verzeichnis_tmpl . $forum_opt[12] . „/forum_bearbeiten.htm“;
$tmpl_nachricht_ok = $verzeichnis_tmpl . $forum_opt[12] . „/forum_nachricht_ok.htm“;
$tmpl_konfiguration = $verzeichnis_tmpl . $forum_opt[12] . „/forum_konfiguration.htm“;
$tmpl_zugriff = $verzeichnis_tmpl . $forum_opt[12] . „/forum_zugriff.htm“;
$tmpl_zugriff_fehler = $verzeichnis_tmpl . $forum_opt[12] . „/forum_konfiguration.htm“;
$tmpl_loeschen = $verzeichnis_tmpl . $forum_opt[12] . „/forum_loeschen.htm“;
$tmpl_fehler = $verzeichnis_tmpl . $forum_opt[12] . „/forum_fehler.htm“;
}
sub blacklist_durchgehen {
open (DB, $db_forum_blacklist);
while () {
s/(\cM\n)|(\n\cM)|(\cM)|(\n)//g;
if ($_ ne ‚‘) {
&fehler („Sie sind nicht berechtigt, dieses Forum zu betreten !“) if ($ENV{‚REMOTE_ADDR‘} =~ /$_/ || $ENV{‚REMOTE_ADDR‘} =~ /$_/);
}
}
close (DB);
}
sub forum_anzeigen {
my ($zugriff_logo, @datenbank);
&blacklist_durchgehen;
@datenbank = &nachrichten_einlesen ($forum_opt[30]);
$forum_komprimiert = ‚checked‘ if ($forum_opt[31] == 1);
$zeitraum_txt = „sel=$forum_opt[30]“;
$cookie_neu[6] = 0;
$cookie_neu[6] = 1 if ($forum_opt[31] == 1);
$cookie_neu[7] = $forum_opt[30];
&cookie_daten_speichern(0, @cookie_neu) if ($q->param(‚cmd‘) ne ‚konfiguration_ok‘);
open (TMPL, $tmpl_forum);
while () {
if ($_ =~ //) {
if ($forum_opt[31] == 1) {
&thread_anzeigen_komprimiert ("-", @datenbank);
} else {
&thread_anzeigen ("-", @datenbank);
}
} else {
s/$zeitraum_txt/selected/g;
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
print;
}
}
close (TMPL);
exit;
}
sub nachricht_anzeigen {
@forum_eintrag = &nachricht_per_id ($q->param(‚nachricht‘));
$NEU_BETREFF = $forum_eintrag[5];
$NEU_BETREFF = "Re: " . $forum_eintrag[5] if ($forum_eintrag[5] !~ /^[Rr][Ee]:/);
$NEU_NACHRICHT = „»“ . @forum_eintrag[6];
$NEU_NACHRICHT =~ s//%*%/gi;
$NEU_NACHRICHT =~ s/%*%/\n\»/gi;
($UHRZEIT, $DATUM) = (&datum_erstellen ($forum_eintrag[2]))[0,1];
$NAME = $forum_eintrag[3];
$EMAIL = $forum_eintrag[4];
$NACHRICHT_TITEL = $forum_eintrag[5];
$NACHRICHT = $forum_eintrag[6];
$NACHRICHT =~ s/&;/&/gi;
$NACHRICHT =~ s/";/"/gi;
$WEBSITE = $forum_eintrag[7];
$WEBSITE_TITEL = $forum_eintrag[9];
$PASSWORT = $forum_eintrag[10];
$BROWSER = $forum_eintrag[14];
$HOSTNAME = $forum_eintrag[15];
$zNACHRICHT = $q->param(‚nachricht‘);
$NAME = „$NAME“ if ($EMAIL ne ‚‘);
$FELD_PERMAIL = ‚‘ if ($EMAIL eq ‚‘);
$NACHRICHT_LOESCHEN = ‚‘;
$NACHRICHT_LOESCHEN = ‚‘ if ($forum_eintrag[10] ne ‚‘);
$BANNER = „“ if ($forum_eintrag[8] ne ‚‘);
$WEBSITE = „http://“ . $WEBSITE if ($WEBSITE !~ /^(http)/ && $WEBSITE ne ‚‘);
if ($forum_eintrag[9] ne ‚‘) {
if ($forum_eintrag[9] =~/[’]/) { $WEBSITE = „$forum_eintrag[9]“ if ($WEBSITE ne ‚‘); }
else { $WEBSITE = „$forum_eintrag[9]“ if ($WEBSITE ne ‚‘); }
} else {
$WEBSITE = „$WEBSITE“ if ($WEBSITE ne ‚‘);
}
$WEBSITE_INFO = 'Website von ’ . $forum_eintrag[3] . ': ’ . $WEBSITE . ‚‘ if ($forum_opt[56] eq ‚1‘ && $WEBSITE ne ‚‘);
$HOST_INFO = 'IP / Host ’ . $forum_eintrag[15] . ‚‘ if ($forum_opt[55] eq ‚1‘ && $forum_eintrag[15] ne ‚‘);
$BROWSER_INFO = 'Browser ’ . $forum_eintrag[14] . ‚‘ if ($forum_opt[54] eq ‚1‘ && $forum_eintrag[14] ne ‚‘);
@datenbank = &nachrichten_einlesen($forum_opt[30]);
open (TMPL, $tmpl_nachricht) || &fehler ("$tmpl_nachricht konnte nicht geöffnet werden!");
while () {
if ($_ =~ //) {
&thread_anzeigen($q->param(‚nachricht‘), @datenbank);
&antworten_zaehlen($q->param(‚nachricht‘), @datenbank);
if ($antworten == 0) { print "
keine vorhanden
"; }
}
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
print;
}
close (TMPL);
exit;
}
sub nachricht_vorschau {
if ($q->param(‚name‘) eq ‚‘) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Bitte gib deinen Namen an!“);
}
$NACHRICHT_ORIGINAL = $q->param(‚nachricht‘);
@parameter_keys = $q->param;
open (DB, $db_forum_blacklist);
@blacklist = ;
close (DB);
foreach $key (@parameter_keys) {
$value = join ("
" ,$q->param($key));
$value =~ s/&/&;/g;
$value =~ s/"/";/g;
$value =~ s/]*>([^//g;
$value =~ s/]>//g;
$value =~ s/)]*)–>//g;
$value =~ s///g if ($forum_opt[28] != 1 && $key eq ‚nachricht‘);
$value =~ s/]|\n)*>//g if ($forum_opt[28] != 1 && $key eq ‚nachricht‘);
$value =~ s/\cM\n/
/g;
$value =~ s/\n\cM/
/g;
$value =~ s/\cM/
/g;
$value =~ s/\n/
/g;
$value =~ s/\s+/ /g;
$value =~ s/^\s+//g;
$value =~ s/\s+$//g;
$value =~ s/|/#124/g;
$q->param(-name=>$key,-value=>$value);
foreach $eintrag (@blacklist) {
next if ($eintrag eq ‚‘);
&fehler („Dein Beitrag kann leider nicht akzeptiert werden, weil er ein in der Blacklist vorhandenes Wort oder du nicht berechtigt bist, Beiträge zu schreiben! ($eintrag)“) if ($q->param($key) =~ /$eintrag/i);
}
}
$NACHRICHT_NAME = $q->param(‚name‘);
$NACHRICHT_EMAIL = $q->param(‚email‘);
$NACHRICHT_WEBSITE = $q->param(‚website‘);
$NACHRICHT_WEBSITE_TITEL = $q->param(‚website_titel‘);
$NACHRICHT_BANNER = $q->param(‚banner‘);
$NACHRICHT_NACHRICHT = $q->param(‚nachricht‘);
$NACHRICHT_BETREFF = $q->param(‚betreff‘);
$NACHRICHT_EMAIL_INFO = $q->param(‚email_info‘);
$NACHRICHT_PASSWORT = $q->param(‚passwort‘);
$zNACHRICHT = $q->param(‚zNACHRICHT‘);
$NACHRICHT_EMAIL_INFO_TXT = „nein“;
$NACHRICHT_EMAIL_INFO_TXT = „ja“ if ($q->param(‚email_info‘) == 1);
$NACHRICHT_BANNER_VORSCHAU = ‚‘ if ($q->param(‚banner‘) ne ‚‘);
$NACHRICHT_NUR_PER_EMAIL = 1 if ($q->param(‚nur_per_email‘));
$NACHRICHT_NUR_PER_EMAIL_TXT = „Nachricht wird nur per eMail an Autor versandt !“ if ($NACHRICHT_NUR_PER_EMAIL == 1);
$PASSWORT_KEY = $NACHRICHT_PASSWORT;
$PASSWORT_KEY =~ s/[A-Za-z0-9]/*/gi while ($PASSWORT_KEY =~ /[A-Za-z0-9]/);
$FELD_WEBSITE = ‚‘;
$FELD_WEBSITE_TITEL = ‚‘;
$FELD_BANNER = ‚‘;
$FELD_PASSWORT = ‚‘;
$FELD_WEBSITE = ‚‘ . $TEXT_WEBSITE . ‚‘ . $NACHRICHT_WEBSITE . ‚‘ if ($NACHRICHT_WEBSITE ne ‚‘);
$FELD_WEBSITE_TITEL = ‚‘ . $TEXT_WS_TITEL . ‚‘ . $NACHRICHT_WEBSITE_TITEL . ‚‘ if ($NACHRICHT_WEBSITE_TITEL ne ‚‘);
$FELD_BANNER = ‚‘ . $TEXT_BANNER . ‚‘ if ($NACHRICHT_BANNER ne ‚‘);
$FELD_PASSWORT = ‚‘ . $TEXT_PASSWORT . ‚‘ . $PASSWORT_KEY . ‚‘ if ($NACHRICHT_BANNER ne ‚‘);
open (TMPL, $tmpl_vorschau);
while () {
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
print;
}
close (TMPL);
exit;
}
sub nachricht_hinzufuegen {
local (@input);
if ($q->param(‚name‘) eq ‚‘) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Bitte gib deinen Namen an!“);
}
if ($q->param(‚name‘) =~ / && $q->param(‚name‘) !~ /::/) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Bitte verwende keinen Doppelpunkt in deinem Namen!“);
}
if ($q->param(‚nachricht‘) eq ‚‘) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Dein Beitrag enthält keinen Text!“);
}
if ($q->param(‚betreff‘) =~ /’/) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Bitte verwende kein Apostroph im Betreff!“);
}
if ($q->param(‚email‘) eq ‚‘ && $q->param(‚email_info‘) == 1) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Wenn du über Antworten auf deinen Beitrag informiert werden möchtest, mußt du eine gültige eMail-Adresse angeben!“)
}
if ($q->param(‚email‘) !~ /@/ && $q->param(‚email_info‘) == 1) {
&cookie_daten_speichern (0, @cookie_neu);
&fehler („Wenn du über Antworten auf deinen Beitrag informiert werden möchtest, mußt du eine gültige eMail-Adresse angeben!“)
}
&blacklist_durchgehen;
$nachricht_original = join ("\n", $q->param(‚nachricht‘));
@parameter_keys = $q->param;
foreach $key (@parameter_keys) {
$value = join ("
" ,$q->param($key));
$value =~ s/&/&;/g;
$value =~ s/"/";/g;
$value =~ s/]*>([^//g;
$value =~ s/]>//g;
$value =~ s/)]*)–>//g;
$value =~ s///g if ($forum_opt[28] != 1 && $key eq ‚nachricht‘ && $q->param(‚vorschau‘) ne 1);
$value =~ s/]|\n)*>//g if ($forum_opt[28] != 1 && $key eq ‚nachricht‘ && $q->param(‚vorschau‘) ne 1);
$value =~ s/\cM\n/
/g;
$value =~ s/\n\cM/
/g;
$value =~ s/\cM/
/g;
$value =~ s/\n/
/g;
$value =~ s/\s+/ /g;
$value =~ s/^\s+//g;
$value =~ s/\s+$//g;
$value =~ s/|/#124/g;
$q->param(-name=>$key,-value=>$value);
$input{$key} = $value;
foreach $eintrag (@blacklist) {
next if ($eintrag eq ‚‘);
&fehler („Dein Beitrag kann leider nicht akzeptiert werden, da er ein in der „Blacklist“ vorhandenes Wort enthält oder du nicht berechtigt bist, Beiträge zu schreiben! ($eintrag)“) if ($q->param($key) =~ /$eintrag/i);
}
}
($UHRZEIT, $DATUM) = (&datum_erstellen (time()))[0,1];
if ($q->param(‚nur_per_email‘) == 1) {
@eintrag_daten = &nachricht_per_id ($q->param(‚zNACHRICHT‘));
$forum_opt[44] =~ s//\n/g;
$forum_opt[44] =~ s/[NAME]/$input{‚name‘}/g;
$forum_opt[44] =~ s/[EMAIL]/$input{‚email‘}/g;
$forum_opt[44] =~ s/[WEBSITE]/$input{‚website‘}/g;
$forum_opt[44] =~ s/[BANNER]/$input{‚banner‘}/g;
$forum_opt[44] =~ s/[WEBSITE-TITEL]/$input{‚website_titel‘}/g;
$forum_opt[44] =~ s/[NACHRICHT]/$nachricht_original/g;
$forum_opt[44] =~ s/[BETREFF]/$input{‚betreff‘}/g;
$forum_opt[44] =~ s/[DATUM]/$DATUM/g;
$forum_opt[44] =~ s/[UHRZEIT]/$UHRZEIT/g;
open(MAIL,"|$sendmail -t") || &fehler („SendMail konnte nicht geöffnet werden!“);
print MAIL „To: $eintrag_daten[4]\n“;
print MAIL „From: $input{‚email‘} ($input{‚name‘})\n“;
print MAIL „Subject: $input{‚betreff‘} !\n\n“;
print MAIL „$forum_opt[44]“;
print MAIL „\n\n“;
close (MAIL);
&forum_ok („Ihre Nachricht wurde erfolgreich an $eintrag_daten[4] versandt!“);
exit;
}
open (DB, $db_forum_nachrichten) || &fehler ("$db_forum_nachrichten konnte nicht geöffnet werden!");
while () {
@eintrag_alt = split(/|/, $_);
&fehler („Dieser Beitrag hängt schon an der Pinnwand!“) if ($eintrag_alt[6] eq $q->param(‚nachricht‘));
}
close (DB);
$ID = ++$eintrag_alt[0];
$freigegeben = 1 if ($forum_opt[60] == 1);
open (DB, „>>$db_forum_nachrichten“) || &fehler ("$db_forum_nachrichten konnte nicht geöffnet werden!");
my_lock (DB);
print DB $ID . ‚|‘ . $q->param(‚zNACHRICHT‘) . ‚|‘ . time() . ‚|‘ . $q->param(‚name‘) . ‚|‘ . $q->param(‚email‘) .’|’ . $q->param(‚betreff‘) . ‚|‘ . $q->param(‚nachricht‘) . ‚|‘ . $q->param(‚website‘) . ‚|‘ . $q->param(‚banner‘) . ‚|‘ . $q->param(‚website_titel‘) . ‚|‘ . $q->param(‚passwort‘) . ‚|||‘ . $q->param(‚email_info‘) . ‚|‘ . $ENV{‚HTTP_USER_AGENT‘} . ‚|‘ . $ENV{‚REMOTE_ADDR‘} . ‚|‘ . $freigegeben . ‚|‘ . $moderator . „|\n“;
unlock (DB);
close (DB);
&email_autor($q->param(‚zNACHRICHT‘)) if ($q->param(‚zNACHRICHT‘) ne ‚-‘);
&email_forummaster;
$cookie_alt = &cookie_daten_auslesen();
$cookie_neu[1] = $q->param(‚name‘) if ($cookie_alt[1] ne $q->param(‚name‘));
$cookie_neu[2] = $q->param(‚email‘) if ($cookie_alt[2] ne $q->param(‚email‘));
$cookie_neu[3] = $q->param(‚website‘) if ($cookie_alt[3] ne $q->param(‚website‘));
$cookie_neu[4] = $q->param(‚banner‘) if ($cookie_alt[4] ne $q->param(‚banner‘));
$cookie_neu[5] = $q->param(‚website_titel‘) if ($cookie_alt[5] ne $q->param(‚website_titel‘));
&cookie_daten_speichern (0, @cookie_neu);
if ($freigegeben == 1) {
&email_moderiert;
&forum_ok ($TEXT_OK_MODERIERT);
} else {
&forum_ok ($TEXT_OK);
}
}
sub email_moderiert {
if ($forum_opt[61] == 1) {
$email_txt = $forum_opt[62];
$email_txt =~ s/[NAME]/$input{‚name‘}/g;
$email_txt =~ s/[EMAIL]/$input{‚email‘}/g;
$email_txt =~ s/[WEBSITE]/$input{‚website‘}/g;
$email_txt =~ s/[BANNER]/$input{‚banner‘}/g;
$email_txt =~ s/[WEBSITE-TITEL]/$input{‚website_titel‘}/g;
$email_txt =~ s/[NACHRICHT]/$input{‚nachricht‘}/g;
$email_txt =~ s/[BETREFF]/$input{‚betreff‘}/g;
$email_txt =~ s//\n/g;
$email_txt =~ s/[DATUM]/$DATUM/g;
$email_txt =~ s/[UHRZEIT]/$UHRZEIT/g;
open(MAIL,"|$sendmail -t");
print MAIL „To: $input{‚email‘}\n“;
print MAIL „From: $EMAIL ($NAME)\n“;
print MAIL „Subject: $forum_opt[9]: Info !\n\n“;
print MAIL „$email_txt“;
print MAIL „\n\n“;
close (MAIL);
}
}
sub email_autor {
local @forum_eintrag;
@forum_eintrag = &nachricht_per_id ($_[0]);
if ($forum_eintrag[13] == 1) {
$forum_opt[43] =~ s/
/\n/g;
$forum_opt[43] =~ s/[NAME]/$forum_eintrag[3]/g;
$forum_opt[43] =~ s/[EMAIL]/$input{‚email‘}/g;
$forum_opt[43] =~ s/[WEBSITE]/$input{‚website‘}/g;
$forum_opt[43] =~ s/[BANNER]/$input{‚banner‘}/g;
$forum_opt[43] =~ s/[WEBSITE-TITEL]/$input{‚website_titel‘}/g;
$forum_opt[43] =~ s/[NACHRICHT]/$input{‚nachricht‘}/g;
$forum_opt[43] =~ s/[BETREFF]/$input{‚betreff‘}/g;
$forum_opt[43] =~ s//\n/g;
$forum_opt[43] =~ s/[DATUM]/$DATUM/g;
$forum_opt[43] =~ s/[UHRZEIT]/$UHRZEIT/g;
open(MAIL,"|$sendmail -t");
print MAIL „To: $forum_eintrag[4]\n“;
print MAIL „From: $EMAIL ($NAME)\n“;
#print MAIL „From: $forum_opt[1] ($forum_opt[9])\n“;
print MAIL „Subject: Antwort auf deinen Beitrag\n\n“;
print MAIL „$forum_opt[43]“;
print MAIL „\n\n“;
close (MAIL);
}
}
sub email_forummaster {
if ($forum_opt[24] == 1) {
$forum_opt[42] =~ s/[NAME]/$input{‚name‘}/g;
$forum_opt[42] =~ s/[EMAIL]/$input{‚email‘}/g;
$forum_opt[42] =~ s/[WEBSITE]/$input{‚website‘}/g;
$forum_opt[42] =~ s/[BANNER]/$input{‚banner‘}/g;
$forum_opt[42] =~ s/[WEBSITE-TITEL]/$input{‚website_titel‘}/g;
$forum_opt[42] =~ s/[NACHRICHT]/$input{‚nachricht‘}/g;
$forum_opt[42] =~ s/[BETREFF]/$input{‚betreff‘}/g;
$forum_opt[42] =~ s//\n/g;
$forum_opt[42] =~ s/[DATUM]/$DATUM/g;
$forum_opt[42] =~ s/[UHRZEIT]/$UHRZEIT/g;
open(MAIL,"|$sendmail -t");
print MAIL „To: $EMAIL ($NAME)\n“;
print MAIL „From: $input{‚email‘} ($input{‚name‘})\n“;
print MAIL „Subject: Neuer Beitrag an der Abi-Pinnwand\n\n“;
print MAIL „$forum_opt[42]“;
print MAIL „\n\n“;
close (MAIL);
}
}
sub forum_ok {
&template_anzeigen ($tmpl_nachricht_ok, $_[0]);
}
sub nachrichten_suchen {
$keine_beitraege=1;
@datenbank = &nachrichten_einlesen($q->param(‚zeitraum‘));
open (TMPL, $tmpl_suchen_ok);
while () {
if (/\n/) {
$suchstring = $q->param(‚suchstring‘);
while ($suchstring =~ /"(.*?)"/o) {
push (@woerter, $1);
$suchstring =~ s/"$1"//;
}
$suchstring =~ s/\s+/ /gi;
@woerter_rest = split (/ /, $suchstring);
push (@woerter, @woerter_rest);
$anzahl_woerter = @woerter;
foreach $eintrag (@datenbank) {
$eintragen = 0;
$gefunden = 0;
foreach $wort (@woerter) {
if ($q->param(‚verknuepfung‘) eq ‚ODER‘) {
if ($eintrag =~ /$wort/i) {
$eintragen = 1;
last;
}
}
if ($q->param(‚verknuepfung‘) eq ‚UND‘) {
$gefunden++ if ($eintrag =~ /$wort/i);
$eintragen = 1 if ($gefunden >= $anzahl_woerter);
}
}
if ($eintragen == 1) {
$keine_beitraege=0;
undef @forum_eintrag;
@forum_eintrag = split(/|/, $eintrag);
($uhrzeit, $datum) = (&datum_erstellen ($forum_eintrag[2]))[0,1];
if ($forum_eintrag[2] > (time() - ($forum_opt[34] * 86400))) {
$icon_neu = ‚‘;
} else {
$icon_neu = ‚‘;
}
$forum_eintrag[5] = ‚kein Betreff‘ if ($forum_eintrag[5] eq ‚‘);
$forum_eintrag[3] = ‚unbekannt‘ if ($forum_eintrag[3] eq ‚‘);
if ($forum_eintrag[16] != 1) {
print „-
$forum_eintrag[5] $icon_neu $moderator_icon ($forum_eintrag[3] | $datum | $uhrzeit Uhr)
\n“;
}
}
}
if($keine_beitraege==1) { print „keine Beiträge gefunden“; };
} else {
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
print;
}
}
close (TMPL);
exit;
}
sub forum_suche {
&template_anzeigen ($tmpl_suchen);
}
sub nachricht_loeschen {
$NACHRICHT = $q->param(‚loeschen‘);
&template_anzeigen ($tmpl_loeschen);
}
sub nachricht_loeschen_ok {
@forum_eintrag = &nachricht_per_id ($q->param(‚nr‘));
&fehler („Das angebene Passwort stimmt nicht mit dem gespeicherten überein!“) if ($forum_eintrag[10] ne $q->param(‚passwort‘));
open (DB, $db_forum_nachrichten);
@forum_eintraege = ;
close (DB);
&thread_durchgehen ($q->param(‚nachricht‘));
$nachrichten_zum_loeschen = ‚-‘ . $q->param(‚nr‘) . ‚-‘ . join (’-’, @nachrichten_loeschen) . ‚-‘;
open (DB, „>“ . $db_forum_nachrichten);
foreach $nachricht_daten (@forum_eintraege) {
@nachricht = split (/|/, $nachricht_daten);
if ($nachrichten_zum_loeschen !~ /-$nachricht[0]-/) {
print DB $nachricht_daten;
} else {
$nachricht_neu = @nachricht_daten;
}
}
close (DB);
&forum_ok ($TEXT_OK_LOESCHEN);
exit;
}
sub thread_durchgehen {
foreach $eintrag (@forum_eintraege) {
@forum_eintrag = split(/|/, $eintrag);
if ($_[0] eq $forum_eintrag[1]) {
push (@nachrichten_loeschen, $forum_eintrag[0]);
&thread_durchgehen ($forum_eintrag[0]);
}
}
}
sub forum_konfigurieren {
@cookie_alt = &cookie_daten_auslesen();
$forum_komprimiert = ‚checked‘ if ($forum_opt[31] == 1);
$cookies_verwenden = ‚checked‘ if ($cookie_alt[0] == 1);
$zeitraum_txt = „sel=$forum_opt[30]“;
open (TMPL, $tmpl_konfiguration);
while () {
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
s/$zeitraum_txt/selected/g;
print;
}
close (TMPL);
exit;
}
sub forum_konfigurieren_ok {
$cookie_alt = &cookie_daten_auslesen();
$cookie_neu[0] = $q->param(‚inaktiv‘);
$cookie_neu[0] = 0 if (! defined $q->param(‚inaktiv‘));
$cookie_neu[1] = $q->param(‚name‘);
$cookie_neu[2] = $q->param(‚email‘);
$cookie_neu[3] = $q->param(‚website‘);
$cookie_neu[4] = $q->param(‚banner‘);
$cookie_neu[5] = $q->param(‚titel‘);
$cookie_neu[6] = $q->param(‚komprimiert‘);
$cookie_neu[6] = 0 if (! defined $q->param(‚komprimiert‘));
$cookie_neu[7] = $q->param(‚zeitraum‘);
&cookie_daten_speichern(1, @cookie_neu);
$forum_opt[25] = $cookie_neu[0];
$forum_opt[31] = $cookie_neu[6];
&forum_anzeigen;
exit;
}
sub nachricht_per_id {
my (@datenbank) = &nachrichten_einlesen(‚alle‘);
foreach $eintrag (@forum_db) {
@eintrag_daten = split (/|/, $eintrag);
last if ($eintrag_daten[0] == $_[0]);
}
return @eintrag_daten;
}
sub thread_anzeigen {
if ($forum_opt[30] =~ /^max/) {
$max_nachrichten = substr ($forum_opt[30], 3);
} else {
$max_nachrichten = 1000;
}
my ($start, @datenbank) = @_;
my ($icon_neu);
print "
";
if ($NACHRICHTEN_ANGEZEIGT == 0) {
print „$TEXT_KEINE_NACHRICHTEN“;
} else {
foreach $eintrag (@datenbank) {
chop ($eintrag) if ($eintrag =~ /\n$/);
@forum_eintrag = split(/|/, $eintrag);
if ($start eq $forum_eintrag[1]) {
($uhrzeit, $datum) = (&datum_erstellen ($forum_eintrag[2]))[0,1];
if ($forum_eintrag[2] > (time() - ($forum_opt[34] * 86400))) {
$icon_neu = ‚‘;
} else {
$icon_neu = ‚‘;
}
$forum_eintrag[5] = ‚kein Betreff‘ if ($forum_eintrag[5] eq ‚‘);
$forum_eintrag[3] = ‚unbekannt‘ if ($forum_eintrag[3] eq ‚‘);
if ($forum_eintrag[16] != 1 && $max_nachrichten > $nachrichten_angezeigt) {
print „-
$forum_eintrag[5] $icon_neu $moderator_icon ($forum_eintrag[3] | $datum | $uhrzeit Uhr)
\n“;
$nachrichten_angezeigt++;
&thread_anzeigen ($forum_eintrag[0], @datenbank);
} else {
$NACHRICHTEN_ANGEZEIGT–;
$NACHRICHTEN_ANGEZEIGT–;
}
}
}
}
print „\n“;
$NACHRICHTEN_ANGEZEIGT = substr ($forum_opt[30], 3) if ($forum_opt[30] =~ /^max/ && $NACHRICHTEN_GESAMT > int(substr ($forum_opt[30], 3)));
}
sub thread_anzeigen_komprimiert {
my ($start, @datenbank) = @_;
local ($antworten, $antworten_neu) = (0,0);
print "
";
if ($NACHRICHTEN_ANGEZEIGT == 0) {
print „$TEXT_KEINE_NACHRICHTEN“;
} else {
foreach $eintrag (@datenbank) {
chop ($eintrag) if ($eintrag =~ /\n$/);
@forum_eintrag = split(/|/, $eintrag);
if ($forum_eintrag[1] eq ‚-‘) {
$forum_eintrag[5] = ‚kein Betreff‘ if ($forum_eintrag[5] eq ‚‘);
if ($forum_eintrag[16] != 1) {
&antworten_zaehlen ($forum_eintrag[0], @datenbank);
print „-
$forum_eintrag[5] $antworten Antwort“;
if ($antworten != ‚1‘) { print „en“; }
print " ($antworten_neu neu)
\n";
($antworten, $antworten_neu) = (0,0);
}
}
}
}
print „\n“;
}
sub antworten_zaehlen {
my ($start, @datenbank) = @_;
my (@forum_eintrag);
foreach $eintrag (@datenbank) {
chop ($eintrag) if ($eintrag =~ /\n$/);
@forum_eintrag = split(/|/, $eintrag);
if ($start eq $forum_eintrag[1]) {
if ($forum_eintrag[16] != 1) {
&antworten_zaehlen ($forum_eintrag[0], @datenbank);
$antworten++;
$antworten_neu++ if ($forum_eintrag[2] > (time() - ($forum_opt[34] * 86400)));
}
}
}
}
sub nachrichten_einlesen {
local @db = „“;
open (DB, $db_forum_nachrichten);
my_lock (DB);
@forum_db = ;
unlock (DB);
close (DB);
@forum_db = reverse @forum_db;
$NACHRICHTEN_GESAMT = @forum_db;
$NACHRICHTEN_ANGEZEIGT = 0;
@zeit = localtime(time());
if ($_[0] eq ‚alle‘ || $_[0] =~ /^max/) {
@db = @forum_db;
$NACHRICHTEN_ANGEZEIGT = @db;
} elsif ($_[0] eq ‚heute‘) {
foreach $eintrag_daten (@forum_db) {
@eintrag = split(/|/, $eintrag_daten);
@datum_beitrag = &datum_erstellen ($eintrag[2]);
@datum_aktuell = &datum_erstellen (time());
if ($datum_beitrag[1] eq $datum_aktuell[1]) {
push (@db, $eintrag_daten);
$NACHRICHTEN_ANGEZEIGT++;
}
}
} else {
$zeit_alt = time();
$zeit_minimum = $zeit_alt - ($_[0] * 86400);
foreach $eintrag_daten (@forum_db) {
@eintrag = split(/|/, $eintrag_daten);
if ($eintrag[2] > $zeit_minimum) {
push (@db, $eintrag_daten);
$NACHRICHTEN_ANGEZEIGT++;
}
}
}
@nachrichten_einlesen = @db;
}
sub cookie_daten_auslesen {
@cookie = $q->cookie(-name=>‚forum‘);
return @cookie;
}
sub cookie_daten_speichern {
my ($override, @cookie_neu) = @_;
@cookie_alt = &cookie_daten_auslesen;
return if ($cookie_alt[0] == 1 && $override != 1);
for ($i=0; $icookie (-name => ‚forum‘,
-value => [$cookie_neu[0],$cookie_neu[1],$cookie_neu[2],$cookie_neu[3],$cookie_neu[4],$cookie_neu[5],$cookie_neu[6],$cookie_neu[7],time()],
-expires => ‚Sat, 20-Feb-2010 00:00:00 GMT‘);
if ($forum_opt[25] == 1) {
print $q->header(-cookie=>$c);
} else {
print $q->header();
}
}
sub fehler {
&template_anzeigen ($tmpl_fehler, $_[0]);
}
sub template_anzeigen {
my ($template) = $_[0];
$INFO = $_[1];
my ($name);
open (TMPL, $template) || die „$template konnte nicht geöffnet werden !“;
while () {
while ($_ =~ //o) {
$name = $1;
$_ =~ s//$$name/g;
}
print;
}
close (TMPL);
exit;
}
sub datum_erstellen {
$uhrzeit_angepasst = $_[0];
my ($sekunde, $minute, $stunde, $tag, $monat, $jahr, $wochentag) = (localtime($uhrzeit_angepasst))[0,1,2,3,4,5,6];
my (@datum_erstellen);
#@datum_erstellen[0] = sprintf("%02d:%02d:%02d", $stunde, $minute, $sekunde);
@datum_erstellen[0] = sprintf("%02d:%02d", $stunde, $minute);
@datum_erstellen[1] = sprintf("%02d.%02d.%02d", $tag, ++$monat, $jahr + 1900);
return @datum_erstellen;
}
sub unlock {
local(*DATEI) = @_;
if (-e DATEI) {
if ($verwendung_von_flock == 1) {
flock(DATEI, 8);
}
}
}
sub my_lock {
local (*DATEI) = @_;
my ($schleife) = 0;
if (-e DATEI) {
if ($verwendung_von_flock == 1) {
while(!(flock(DATEI, 6))) {
if ($schleife