#!/usr/bin/perl
#in der Zeile oben bitte den genauen Pfad zu Perl eingeben, in der Regel stimmt der Pfad so
#das Modul CGI-PM muß installiert ist, keine Sorge, ist fast immer der Fall 
use CGI qw/:standard :html3 -no_debug/; 
$CGI::POST_MAX=1024*100;
$CGI::DISABLE_UPLOADS=1;


#********************************************************************************
require "config/config.txt";
&codeoben;
&menueleiste;
print "<br>";

$action=param("action");
$action=~ s/^\s+//;
$action=~ s/\s+$//;

if ($action eq 'ansehen' or $action eq '')
{
&zeigebeitrag;
}
if ($action eq 'antworten')
{
&antwortformular;
}
if ($action eq 'antwortspeichern')
{
&antwortspeichern;
}
if ($action eq 'schreiben')
{
&beitragschreiben;
}
if ($action eq 'beitragspeichern')
{
&beitragspeichern;
}
if ($action eq 'loeschen')
{
&loeschen;
}
if ($action eq 'loeschenspeichern')
{
&loeschenspeichern;
}
if ($action eq 'registrieren')
{
&registrieren;
}
if ($action eq 'registrierenspeichern')
{
&registrierenspeichern;
}
if ($action eq 'userloeschen')
{
&userloeschen;
}
if ($action eq 'userloeschenspeichern')
{
&userloeschenspeichern;
}
if ($action eq 'useruebersicht')
{
&useruebersicht;
}
&codeunten; 
if ($action eq 'useruebersichtausfuehren')
{
&useruebersichtausfuehren;
}
sub codeoben
{
print "Content-type: text/html\n\n";
  print "<title>$titel</title>\n";
print "<style type=text/css>";
print "<!--";
print "h1{font-size:$textgroesse1;color:$textfarbe1;}";
print "h2{font-size:$textgroesse2;color:$textfarbe2;}";
print "h3{font-size:11pt;color:$textfarbe1;}";
print "a:link{color:$textfarbe1;font-size:$textgroesse1;}";
print "//-->";
print "</style>";


  print "</head>\n";
if (length($hintergrundbild) == 0)
{
  print "<body bgcolor=$hintergrundfarbe>\n";
}
else
{
print "<body background=\"$hintergrundbild\">\n";
}
open(IN,"einstellungen/htmlcodeoben.txt");
while (<IN>)
{
$text=$_;
print "$text";
}
close(IN);
}

sub codeunten
{
print "<br>";
print "<br><br>";
open(IN,"einstellungen/htmlcodeunten.txt");
while (<IN>)
{
$text=$_;
print "$text";
}
close(IN);
print"<html>\n";
}

sub menueleiste
{
$text=<<"TEXT";
<br>
<table border=0>
<td width=200 height=30>
<a href="$linkname"><h1>Forum verlassen</a>
</td>
<td width=200 height=30>
<a href=$skriptpfad?action=ansehen><h1>Forum-Startseite</a>
</td>
<td width=200 height=30>
<a href=$skriptpfad?action=schreiben><h1>Beitrag schreiben</a>
</td>
<td width=200 height=30>
<a href=$skriptpfad?action=registrieren><h1>Nick registrieren</a>
</td>
</table>
<center>
<h1>$forumsname
</center>
TEXT
print "$text";
}
sub zeigebeitrag
{
$nummer=param("nummer");
$nummer=~ s/^\s+//;
$nummer=~ s/\s+$//;

if (length($nummer) == 0 or $nummer =~ /\D/)
{
$nummer='';
}

if ($nummer eq '')
{
	@beitraege=();
	@zwischendaten=();
	open(IN,"daten/hauptdatei.txt");
	while(<IN>)
	{
		$zwischentext=$_;
		$zwischentext=~ s/^\s+//;
		$zwischentext=~ s/\s+$//;

		if (length($zwischentext) > 0)
			{
				
				@zwischendaten=split(/\t/,$zwischentext);
				
		$laenge=$#zwischendaten;
		for ($z=0;$z<=$laenge;$z+=1)
		{
		
			push(@beitraege,$zwischendaten[$z]);
		
		}
		push(@beitraege,'neu');
	}
	}
	close(IN);

	$laenge=$#beitraege;
	if (not(-e "daten/hauptdatei.txt"))
	{
		print "<center>";
		print "<h1>Es gibt noch keine Beiträge im $forumsname.";
		print "</center>";
	}
	else
	{
		$aktuellenummer=$beitraege[0];
		$zaehler=0;
		for ($z=1;$z<=$laenge;$z+=1)
		{
			if ($beitraege[$z] ne 'neu')
			{
				$zaehler=$zaehler+1;
			}
			else
			{
				open(IN,"daten/$aktuellenummer.txt");
				$titel=<IN>;
				chomp($titel);
				$nick=<IN>;
				chomp($nick);
				$email=<IN>;
				chomp($email);
				$oeffentlich=<IN>;
				chomp($oeffentlich);
				$benachrichtigung=<IN>;
				chomp($benachrichtigung);
				$url=<IN>;
				chomp($url);
				$tag=<IN>;
				chomp($tag);
				$monat=<IN>;
				chomp($monat);
				$jahr=<IN>;
				chomp($jahr);
				$sekunde=<IN>;
				chomp($sekunde);
				$minute=<IN>;
				chomp($minute);
				$stunde=<IN>;
				chomp($stunde);	
				close(IN);
				print "<table border=0>";
				print "<td width=400 height=20>";
				print "<a href=\"$skriptpfad?action=ansehen&nummer=$aktuellenummer\"><h2>$titel ($zaehler Beiträge)</a>";
				print "</td>";
				print "<td width=400 height=20>";
				print "<h2>geschrieben von $nick am $tag.$monat.$jahr um $stunde:$minute:$sekunde Uhr";
				print "</td>";
				print "</table>";		
				print "<br>";
				$aktuellenummer=$beitraege[$z+1];
				$zaehler=0;
				$z=$z+1;				
			}	
		}
	}
}

if ($nummer ne '')
{
	$aktuellenummer=$nummer;
	open(IN,"daten/hauptdatei.txt");
	while(<IN>)
	{
		$zwischentext=$_;
		$zwischentext=~ s/^\s+//;
		$zwischentext=~ s/\s+$//;
		#print "<h1>$zwischentext";
		if (substr($zwischentext,0,4) == substr($aktuellenummer,0,4) and length($zwischentext) > 0)
		{
			#print "<h1>Übereinstimmung";
			@zwischendaten=split(/\t/,$zwischentext);
			last;
		}	
	}
	close(IN);
	$laenge=$#zwischendaten;
	#print "<h1>$laenge";
	$tiefebeitraege=length($nummer);
	for ($z=0;$z<=$laenge;$z+=1)
	{
		$ztext=$zwischendaten[$z];
		$ztiefebeitraege=length($ztext);
		if ($ztiefebeitraege > $tiefebeitraege)
		{
			$tiefebeitraege=$ztiefebeitraege;
		}
	}
	for ($z=0;$z<=$laenge;$z+=1)
	{
		if ($zwischendaten[$z] == $aktuellenummer)
		{
			open(IN,"daten/$aktuellenummer.txt");
			$titel=<IN>;
			chomp($titel);
			$nick=<IN>;
			chomp($nick);
			$email=<IN>;
			chomp($email);
			$oeffentlich=<IN>;
			chomp($oeffentlich);
			$benachrichtigung=<IN>;
			chomp($benachrichtigung);
			$url=<IN>;
			chomp($url);
			$tag=<IN>;
			chomp($tag);
			$monat=<IN>;
			chomp($monat);
			$jahr=<IN>;
			chomp($jahr);
			$sekunde=<IN>;
			chomp($sekunde);
			$minute=<IN>;
			chomp($minute);
			$stunde=<IN>;
			chomp($stunde);	
			close(IN);
			print "<table border=0>";
			print "<td width=400 height=20>";
			print "<h1>Titel des Beitrage: $titel:";
			print "</td>";
			print "<td width=400 height=40 rowspan=2>";
			print "<h1>Datum: $tag.$monat.$jahr, Uhrzeit: $stunde:$minute:$sekunde Uhr";
			if (length($url) > 0)
			{
			print "<a href=\"$url\" target=\"_blank\"><h1>Homepage: $url</a>";
			}
			print "</td>";
			print "<tr>";
			print "<td width=400 height=20>";
			if (length($email) > 0 and $oeffentlich eq 'j')
			{
			print "<table border=0>";
			print "<td width=150>";
			print "<h1>geschrieben von:";
			
			print "</td>";
			print "<td width=250>";
			print "<a href=\"mailto:$email?subject=$titel\"><h1>$nick</a>";
			print "</td>";
			print "</table>";
			}
			else
			{
			print "<h1>geschrieben von $nick";
			}
			print "</td>";
			print "</table>";
			last;
		}
	}
	print "<br>";
	print "<table border=0>";
	print "<td width=800>";
	print "<h2>";
	open(IN,"beitraege/$aktuellenummer.txt");
	while (<IN>)
	{
		$zwischentext=$_;
		$zwischentext =~ s/\n/<br>/g;
		print "$zwischentext";
	}
	close(IN);
	print "</h2>";
	print "</td>";
	print "</table>";
	print "<br>";
	print "<table border=0>";
	print "<td width=250 height=30>";
	print "<a href=\"javascript:history.back()\"><h1>Zur letzten Seite</a>";
	print "</td>";
	print "<td width=250 height=30>";
	print "<a href=\"$skriptpfad?action=antworten&nummer=$aktuellenummer\"><h1>Antwort schreiben</a>";
	print "</td>";
	print "<td width=250 height=30>";
	print "<a href=\"$skriptpfad?action=loeschen&nummer=$aktuellenummer\"><h1>Beitrag löschen</a>";
	print "</td>";
	print "</table>";
	print "</center>";
	print "<br>";
	print "<center>";
	print "<h1>Bisherige Antworten zu diesem Beitrag:";
	print "</center>";
	print "<br>";
	$zaehler=0;
	$aktuelletiefe=length($aktuellenummer);
	for ($z=0;$z<=$laenge;$z+=1)
	{
		if (length($zwischendaten[$z]) > $aktuelletiefe)
		{
			$zaehler=$zaehler+1;
		}
	}
if ($zaehler == 0)
{
	print "<center>";
	print "<h1>Noch keine Antworten vorhanden.";
	print "</center>";
}
else
{
	for ($z=0;$z<=$laenge;$z+=1)
	{
		$zlaenge=length($zwischendaten[$z]);
		$zwischennummmer=$zwischendaten[$z];
		if ($zlaenge > $aktuelletiefe)
		{
			print "<table border=0>";
			for ($z2=1;$z2<=($zlaenge/3);$z2+=1)
			{
				print "<td width=30>";
				print "</td>";
			}
			#print "<h1>$zwischendaten[$z]";
			open(IN,"daten/$zwischendaten[$z].txt");
			$titel=<IN>;
			chomp($titel);
			$nick=<IN>;
			chomp($nick);
			$email=<IN>;
			chomp($email);
			$oeffentlich=<IN>;
			chomp($oeffentlich);
			$benachrichtigung=<IN>;
			chomp($benachrichtigung);
			$url=<IN>;
			chomp($url);
			$tag=<IN>;
			chomp($tag);
			$monat=<IN>;
			chomp($monat);
			$jahr=<IN>;
			chomp($jahr);
			$sekunde=<IN>;
			chomp($sekunde);
			$minute=<IN>;
			chomp($minute);
			$stunde=<IN>;
			chomp($stunde);	
			close(IN);
			print "<td>";
			print "<a href=\"$skriptpfad?action=ansehen&nummer=$zwischendaten[$z]\"><h2>$titel. Geschrieben von $nick am $tag.$monat.$jahr um $stunde:$minute:$sekunde Uhr</a>";
			print "</td>";	
			print "</table>";
			print "<br>";
		}
	}
}		
}



}

sub antwortformular
{
$nummer=param("nummer");
$nummer=~ s/^\s+//;
$nummer=~ s/\s+$//;
if (length($nummer) == 0 or $nummer =~ /\D/)
{
$nummer='';
}
if (-e "daten/$nummer.txt")
{
	open(IN,"daten/$nummer.txt");
	$titel=<IN>;
	chomp($titel);
	$nick=<IN>;
	chomp($nick);
	$email=<IN>;
	chomp($email);
	$oeffentlich=<IN>;
	chomp($oeffentlich);
	$benachrichtigung=<IN>;
	chomp($benachrichtigung);
	$url=<IN>;
	chomp($url);
	$tag=<IN>;
	chomp($tag);
	$monat=<IN>;
	chomp($monat);
	$jahr=<IN>;
	chomp($jahr);
	$sekunde=<IN>;
	chomp($sekunde);
	$minute=<IN>;
	chomp($minute);
	$stunde=<IN>;
	chomp($stunde);	
	close(IN);

	print "<center>";
	print "<h1>Beitrag $titel beantworten (* = Pflichtangabe):";
	print "</center>";
	print "<br>";
$text=<<"TEXT";
<form name="antwort" method="post" action=$skriptpfad onSubmit="return pruefung()">
<input type="hidden" name="action" value="antwortspeichern">
<input type="hidden" name="nummer" value=$nummer>
<table border=0>
<td width=400 height=20>
<h1>Titel Deiner Antwort*:
</td>
<td width=400 height=20>
<input name="titel" size=20 maxlength=30>
</td><tr>
<td width=400 height=20>
<h1>Dein Nickname*:
</td>
<td width=400 height=20>
<input name="nick" size=20 maxlength=30>
</td><tr>
<td width=400 height=20>
<h1>Falls Nickname registriert, bitte Paßwort eingeben:
</td>
<td width=400 height=20>
<input name="passwort" size=10 maxlength=20>
</td><tr>
<td width=400 height=20>
<h1>Deine E-Mail-Adresse:
</td>
<td width=400 height=20>
<input name="email" size=20 maxlength=70>
</td><tr>
<td width=400 height=20>
<h1>Soll E-Mail-Adresse öffentlich erscheinen?
</td>
<td width=400 height=20>
<select name="oeffentlich" size=1>
<option selected value='n'>Nein
<option value='j'>Ja
</select>
</td><tr>
<td width=400 height=20>
<h1>Willst Du über Antworten auf Deinen Beitrag per E-Mail informiert werden?
</td>
<td width=400 height=20>
<select name="benachrichtigung" size=1>
<option selected value='n'>Nein
<option value='j'>Ja
</select>
</td><tr>
<td width=400 height=20>
<h1>Deine Homepage:
</td>
<td width=400 height=20>
<input name="url" size=20 maxlength=70>
</td><tr>
</table>
<table border=0>
<td width=100 height=40>
TEXT
print "$text";
if ($erlaubt eq 'ja')
{
print "<h1>Deine Antwort (HTML erlaubt)*:";
}
else
{
print "<h1>Deine Antwort (HTML nicht erlaubt)*:";
}
$text=<<"TEXT";
</td>
<td width=400 height=40>
<textarea name="antwort" cols="40" rows="6" wrap="physical">
</textarea>
</td>
<td width=200 height=40>
<input type="submit" value="Antwort absenden">
<br><br>
<a href="javascript:history.back()"><h1>Zur letzten Seite</a>
</td>
</table>
</form>
<script language="JavaScript">
function pruefung()
{
if (document.antwort.titel.value == "")
{
alert("Bitte fülle das Feld Titel aus.");
return false;
}
if (document.antwort.nick.value == "")
{
alert("Bitte fülle das Feld Nickname aus.");
return false;
}
if (document.antwort.antwort.value == "")
{
alert("Bitte schreibe eine Antwort.");
return false;
}
if (document.antwort.email.value == "" && document.antwort.benachrichtigung.options[1].selected == true)
{
alert("Wenn Du automatisch über Antworten benachrichtigt werden möchtest, trage bitte Deine E-Mail-Adresse ein.");
return false;
}
return true;
}
</script>
TEXT
print "$text";
	
}

}

sub antwortspeichern
{
$nummer=param("nummer");
$nummer=~ s/^\s+//;
$nummer=~ s/\s+$//;
$titel=param("titel");
$titel=~ s/^\s+//;
$titel=~ s/\s+$//;
$nick=param("nick");
$nick=~ s/^\s+//;
$nick=~ s/\s+$//;
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$email=param("email");
$email=~ s/^\s+//;
$email=~ s/\s+$//;
$oeffentlich=param("oeffentlich");
$oeffentlich=~ s/^\s+//;
$oeffentlich=~ s/\s+$//;
$benachrichtigung=param("benachrichtigung");
$benachrichtigung=~ s/^\s+//;
$benachrichtigung=~ s/\s+$//;
$url=param("url");
$url=~ s/^\s+//;
$url=~ s/\s+$//;
$antwort=param("antwort");
if ($erlaubt ne 'ja')
{
$antwort =~ s/<//g;
$antwort =~ s/>//g;
}
$globalsicherheit=0;
$titelsicherheit=0;
$emailsicherheit=0;
$urlsicherheit=0;
$antwortsicherheit=0;
$nummersicherheit=1;
$usersicherheit=0;

if (length($nummer) == 0 or $nummer =~ /\D/)
{
$globalsicherheit=1;
}

$laenge=length($titel);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($titel,$z,1);
if ($buchstabe =~ /\w|\s|-|_|\?|!|\.|,|ß|ä|ö|ü|Ä|Ö|Ü|\*/)
{

}
else
{
$globalsicherheit=1;
$titelsicherheit=1;
}

}

if ($titelsicherheit == 1)
{
print "<center>";
print "<h1>Unerlaubte Zeichen im Titel. Bitte verwende nur Buchstaben und Zahlen.";
print "</center>";
}
if (length($titel) == 0)
{
$globalsicherheit=1;
}


if (length($nick) == 0)
{
$globalsicherheit=1;
}

if (length($antwort) == 0)
{
$globalsicherheit=1;
}

if ($oeffentlich ne 'j' and $oeffentlich ne 'n')
{
$globalsicherheit=1;
}
if ($benachrichtigung ne 'j' and $benachrichtigung ne 'n')
{
$globalsicherheit=1;
}
$nickintern=&umlauteumwandeln($nick);
if ($nickintern =~ /\W/)
{
$globalsicherheit=1;
print "<center>";
print "<h1>Bitte verwende im Nick nur Buchstaben, Zahlen und den _.";
print "</center>";
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<center>";
print "<h1>Bitte verwende im Paßwort nur Buchstaben, Zahlen und den _.";
print "</center>";
}

$laenge=length($email);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($email,$z,1);
if ($buchstabe =~ /\w|-|_|@|\./)
{

}
else
{
$globalsicherheit=1;
$emailsicherheit=1;
}

}
if ($emailsicherheit == 1)
{
print "<center>";
print "<h1>Ungültige E-Mailadresse.";
print "</center>";
}

$laenge=length($url);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($url,$z,1);
if ($buchstabe =~ /\w|:|\/|~|-|_|@|\./)
{

}
else
{
$globalsicherheit=1;
$urlsicherheit=1;
}

}
if ($urlsicherheit == 1)
{
print "<center>";
print "<h1>Ungültige Homepageadresse.";
print "</center>";
}

$laenge=length($antwort);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($antwort,$z,1);
if ($buchstabe =~ /\w|:|,|\/|~|-|_|@|\.|!|\?|\s|ß|ä|ö|ü|Ä|Ö|Ü|\(|\)|\n|\*|<|>|"|:|=/)
{

}
else
{
$globalsicherheit=1;
$antwortsicherheit=1;
}

}
if ($antwortsicherheit == 1)
{
print "<center>";
print "<h1>Du hast leider ungültige Sonderzeichen in Deiner Antwort verwendet.";
print "</center>";
}

if ($globalsicherheit == 1)
{
	print "<br>";
	print "<center>";
	print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
	print "</center>";
}

if ($globalsicherheit == 0)
{
	&pruefenummer;
	if ($nummersicherheit == 1)
	{
		print "<br>";
		print "<center>";
		print "<h1>Der Beitrag, auf den Du antworten möchtest, existiert leider nicht mehr.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
		print "</center>";
	}
	if ($nummersicherheit == 0)
	{
		&pruefeusersicherheit;
		if ($usersicherheit == 1)
		{
		print "<br>";
		print "<center>";
		print "<h1>Dieser Nick ist registriert, Du hast ein falsches Paßwort verwendet.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
		print "</center>";
		}
		if ($usersicherheit == 0)
		{
				$zwischenzeilennummer=0;
				$zeilennummer=0;
				@zwischendaten=();
				open(IN,"daten/hauptdatei.txt");
				open(INS,">daten/hauptdateitmp.txt");
				if ($dateisperren == 1)
				{
					flock(IN,2) or die;
					flock(INS,2) or die;
				}
				while(<IN>)
				{
					$zwischenzeilennummer=$zwischenzeilennummer+1;
					$ztext=$_;
					chomp($ztext);
					if (substr($ztext,0,4) eq substr($nummer,0,4))
					{
					$zeilennummer=$zwischenzeilennummer;
					@zwischendaten=split(/\t/,$ztext);
					#print "<h1>$zeilennummer";
					}
					print INS "$ztext\n";
				}
				close(INS);
				close(IN);
				chmod "daten/hauptdateitmp",0666;
				$aktuellelaenge=length($nummer);
				$neuelaenge=length($nummer)+4;
				$laenge=$#zwischendaten;
				for ($z=0;$z<=$laenge;$z+=1)
				{
					if ($zwischendaten[$z] == $nummer)
					{
					
						$zwischenlaenge=length($zwischendaten[$z+1]);
						if ($zwischenlaenge == $neuelaenge)
						{
							$ersetzt=0;
							$vorgaenger=substr($zwischendaten[$z+1],$neuelaenge-4,4);
							if (substr($vorgaenger,0,1) ne '0')
							{
								$ersetzt=1;
								$neuezahl=$vorgaenger+1;
							}
							if (substr($vorgaenger,0,2) ne '00' and $ersetzt == 0)
							{
								$neuezahl=substr($vorgaenger,1,3)+1;
								$ersetzt=1;
							}
							if (substr($vorgaenger,0,3) ne '000' and $ersetzt == 0)
							{
								$neuezahl=substr($vorgaenger,2,2)+1;
								$ersetzt=1;
							}
							if ($ersetzt == 0)
							{
								$neuezahl=substr($vorgaenger,3,1)+1;
							}
							while (length($neuezahl) < 4)
							{
								$neuezahl="0"."$neuezahl";
							}
							
											
						}
						else
						{
							$neuezahl='0001';
						}
						last;
						
					}
				}
				if ($neuezahl < 9999)
				{
				$neuenummer="$nummer"."$neuezahl";
				splice(@zwischendaten,$z+1,0,$neuenummer);
				open(IN,">daten/hauptdatei.txt");
				open(INS,"daten/hauptdateitmp.txt");
				if ($dateisperren == 1)
				{
					flock(IN,2) or die;
					flock(INS,2) or die;
				}
				$zaehler=0;
				while(<INS>)
				{
				
				$zaehler=$zaehler+1;
				$text1=$_;
				chomp($text1);
				if ($zaehler == $zeilennummer)
				{
					$laenge=$#zwischendaten;
					for ($z=0;$z<=$laenge;$z+=1)
					{
						print IN "$zwischendaten[$z]\t";
					}
					print IN "\n";
				}
				else
				{
					print IN "$text1\n";
				}
				}
				close(INS);
				close(IN);
				chmod "daten/hauptdatei.txt",0666;
				unlink "daten/hauptdateitmp.txt";
				@datuminformationen=localtime(time);
				$tag=$datuminformationen[3];
				$monat=$datuminformationen[4];
				$monat=$monat+1;
				$jahr=$datuminformationen[5];
				$jahr=$jahr+1900;
				$sekunde=$datuminformationen[0];
				$minute=$datuminformationen[1];
				$stunde=$datuminformationen[2];
				if (length($tag) == 1)
				{
				$tag="0"."$tag";
				}
				if (length($monat) == 1)
				{
				$monat="0"."$monat";
				}
				if (length($sekunde) == 1)
				{
				$sekunde="0"."$sekunde";
				}
				if (length($minute) == 1)
				{
				$minute="0"."$minute";
				}
				if (length($stunde) == 1)
				{
				$stunde="0"."$stunde";
				}
				if (length($email) == 0)
				{
					$oeffentlich='n';
					$benachrichtigung='n';
				}
				open(IN,">daten/$neuenummer.txt");
				print IN "$titel\n";
				print IN "$nick\n";
				print IN "$email\n";
				print IN "$oeffentlich\n";
				print IN "$benachrichtigung\n";
				print IN "$url\n";
				print IN "$tag\n";
				print IN "$monat\n";
				print IN "$jahr\n";
				print IN "$sekunde\n";
				print IN "$minute\n";
				print IN "$stunde\n";
				close(IN);
				chmod "daten/$neuenummer.txt",0666;
				$antwort =~ s/\n/<br>/g;
				open(IN,">beitraege/$neuenummer.txt");
				print IN "$antwort";
				close(IN);

				open(IN,"daten/$nummer.txt");
				$btitel=<IN>;
				chomp($btitel);
				$bnick=<IN>;
				chomp($bnick);
				$bemail=<IN>;
				chomp($bemail);
				$boeffentlich=<IN>;
				chomp($boeffentlich);
				$bbenachrichtigung=<IN>;
				chomp($bbenachrichtigung);
				close(IN);
				if (length($bemail) > 0 and $bbenachrichtigung eq 'j')
				{
open (SENDMAIL, "|$mailprogramm -oi -t");
print SENDMAIL <<"EOF";
From: $forumsname <$deineemail>
To: $bnick <$bemail>
Subject: Neue Antwort 

$linkname

Hi $bnick,
auf Deinen Beitrag
$btitel wurde am 
$tag.$monat.$jahr um $stunde:$minute:$sekunde Uhr neu
geantwortet. Benutze folgenden Link, um die Antwort direkt 
anzuschauen:
$skriptpfad?action=ansehen&nummer=$neuenummer
					
EOF
close(SENDMAIL);
				}
				if ($webmasterberichtigung == 1)
				{
open (SENDMAIL, "|$mailprogramm -oi -t");
print SENDMAIL <<"EOF";
From: $forumsname <$deineemail>
To: Webmaster <$deineemail>
Subject: Neuer Beitrag im $forumsname

Liebe Webmasterin, lieber Webmaster,
in Deinem Forum $forumsname wurde
am $tag.$monat.$jahr um $stunde:$minute:$sekunde Uhr
ein neuer Beitrag gepostet.
Benutze folgenden Link, um die Antwort direkt 
anzuschauen:
$skriptpfad?action=ansehen&nummer=$neuenummer

Mit freundlichem Gruß aus Hildesheim
Andreas Hübner
(Autor Deines Forumskriptes)
http://www.single-verzeichnis.de
					
EOF
close(SENDMAIL);
				}
				print "<center>";
				print "<h1>$nick, vielen Dank für Deinen Beitrag im $forumsname.";
				print "</center>";
				print "<br>";
				print "<table border=0>";
				print "<td width=400 height=30 align=center>";
				print "<a href=\"$skriptpfad?action=ansehen&nummer=$neuenummer\"><h1>Zu Deinem Beitrag</a>";
				print "</td>";
				print "<td width=400 height=30 align=center>";
				print "<a href=\"$skriptpfad\"><h1>Zum Forum</a>";
				print "</td>";
				print "</table>";

				}	
		}
	}
}
}

sub pruefenummer
{
if (-e "daten/$nummer.txt")
{
$nummersicherheit=0;
}
}

sub pruefeusersicherheit
{
$kleinnick=lc($nick);
$kleinnickintern=&umlauteumwandeln($kleinnick);
if (-e "user/$kleinnickintern.txt")
	{
		open(IN,"user/$kleinnickintern.txt");
		$ztext=<IN>;
		$vpasswort=<IN>;
		chomp($vpasswort);
		if ($vpasswort ne $passwort)
		{
			$usersicherheit=1;
		}
		close(IN);
	}
}

sub beitragschreiben
{
print "<center>";
	print "<h1>Neuen Beitrag in $forumsname posten (* = Pflichtangabe):";
	print "</center>";
	print "<br>";
$text=<<"TEXT";
<form name="antwort" method="post" action=$skriptpfad onSubmit="return pruefung()">
<input type="hidden" name="action" value="beitragspeichern">
<table border=0>
<td width=400 height=20>
<h1>Titel Deines Beitrages*:
</td>
<td width=400 height=20>
<input name="titel" size=20 maxlength=30>
</td><tr>
<td width=400 height=20>
<h1>Dein Nickname*:
</td>
<td width=400 height=20>
<input name="nick" size=20 maxlength=30>
</td><tr>
<td width=400 height=20>
<h1>Falls Nickname registriert, bitte Paßwort eingeben:
</td>
<td width=400 height=20>
<input name="passwort" size=10 maxlength=20>
</td><tr>
<td width=400 height=20>
<h1>Deine E-Mail-Adresse:
</td>
<td width=400 height=20>
<input name="email" size=20 maxlength=70>
</td><tr>
<td width=400 height=20>
<h1>Soll E-Mail-Adresse öffentlich erscheinen?
</td>
<td width=400 height=20>
<select name="oeffentlich" size=1>
<option selected value='n'>Nein
<option value='j'>Ja
</select>
</td><tr>
<td width=400 height=20>
<h1>Willst Du über Antworten auf Deinen Beitrag per E-Mail informiert werden?
</td>
<td width=400 height=20>
<select name="benachrichtigung" size=1>
<option selected value='n'>Nein
<option value='j'>Ja
</select>
</td><tr>
<td width=400 height=20>
<h1>Deine Homepage:
</td>
<td width=400 height=20>
<input name="url" size=20 maxlength=70>
</td><tr>
</table>
<table border=0>
<td width=100 height=40>
TEXT
print "$text";
if ($erlaubt eq 'ja')
{
print "<h1>Dein Beitrag (HTML erlaubt)*:";
}
else
{
print "<h1>Dein Beitrag (HTML nicht erlaubt)*:";
}
$text=<<"TEXT";
</td>
<td width=400 height=40>
<textarea name="antwort" cols="40" rows="6" wrap="physical">
</textarea>
</td>
<td width=200 height=40>
<input type="submit" value="Beitrag absenden">
<br><br>
<a href="javascript:history.back()"><h1>Zur letzten Seite</a>
</td>
</table>
</form>
<script language="JavaScript">
function pruefung()
{
if (document.antwort.titel.value == "")
{
alert("Bitte fülle das Feld Titel aus.");
return false;
}
if (document.antwort.nick.value == "")
{
alert("Bitte fülle das Feld Nickname aus.");
return false;
}
if (document.antwort.antwort.value == "")
{
alert("Bitte schreibe eine Antwort.");
return false;
}
if (document.antwort.email.value == "" && document.antwort.benachrichtigung.options[1].selected == true)
{
alert("Wenn Du automatisch über Antworten benachrichtigt werden möchtest, trage bitte Deine E-Mail-Adresse ein.");
return false;
}
return true;
}
</script>
TEXT
print "$text";

}


sub beitragspeichern
{

$titel=param("titel");
$titel=~ s/^\s+//;
$titel=~ s/\s+$//;
$nick=param("nick");
$nick=~ s/^\s+//;
$nick=~ s/\s+$//;
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$email=param("email");
$email=~ s/^\s+//;
$email=~ s/\s+$//;
$oeffentlich=param("oeffentlich");
$oeffentlich=~ s/^\s+//;
$oeffentlich=~ s/\s+$//;
$benachrichtigung=param("benachrichtigung");
$benachrichtigung=~ s/^\s+//;
$benachrichtigung=~ s/\s+$//;
$url=param("url");
$url=~ s/^\s+//;
$url=~ s/\s+$//;
$antwort=param("antwort");
if ($erlaubt ne 'ja')
{
$antwort =~ s/<//g;
$antwort =~ s/>//g;
}

$globalsicherheit=0;
$titelsicherheit=0;
$emailsicherheit=0;
$urlsicherheit=0;
$antwortsicherheit=0;
$usersicherheit=0;
@allebeitraege=();

$laenge=length($titel);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($titel,$z,1);
if ($buchstabe =~ /\w|\s|-|_|\?|!|\.|,|ß|ä|ö|ü|Ä|Ö|Ü|\*/)
{

}
else
{
$globalsicherheit=1;
$titelsicherheit=1;
}

}

if ($titelsicherheit == 1)
{
print "<center>";
print "<h1>Unerlaubte Zeichen im Titel. Bitte verwende nur Buchstaben und Zahlen.";
print "</center>";
}
if (length($titel) == 0)
{
$globalsicherheit=1;
}


if (length($nick) == 0)
{
$globalsicherheit=1;
}

if (length($antwort) == 0)
{
$globalsicherheit=1;
}

if ($oeffentlich ne 'j' and $oeffentlich ne 'n')
{
$globalsicherheit=1;
}
if ($benachrichtigung ne 'j' and $benachrichtigung ne 'n')
{
$globalsicherheit=1;
}
$nickintern=&umlauteumwandeln($nick);
if ($nickintern =~ /\W/)
{
$globalsicherheit=1;
print "<center>";
print "<h1>Bitte verwende im Nick nur Buchstaben, Zahlen und den _.";
print "</center>";
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<center>";
print "<h1>Bitte verwende im Paßwort nur Buchstaben, Zahlen und den _.";
print "</center>";
}

$laenge=length($email);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($email,$z,1);
if ($buchstabe =~ /\w|-|_|@|\./)
{

}
else
{
$globalsicherheit=1;
$emailsicherheit=1;
}

}
if ($emailsicherheit == 1)
{
print "<center>";
print "<h1>Ungültige E-Mailadresse.";
print "</center>";
}

$laenge=length($url);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($url,$z,1);
if ($buchstabe =~ /\w|:|\/|~|-|_|@|\./)
{

}
else
{
$globalsicherheit=1;
$urlsicherheit=1;
}

}
if ($urlsicherheit == 1)
{
print "<center>";
print "<h1>Ungültige Homepageadresse.";
print "</center>";
}

$laenge=length($antwort);
for ($z=0;$z<$laenge;$z+=1)
{
$buchstabe=substr($antwort,$z,1);
if ($buchstabe =~ /\w|:|,|\/|~|-|_|@|\.|!|\?|\s|ß|ä|ö|ü|Ä|Ö|Ü|\(|\)|\n|\*|<|>|"|:|=/)
{

}
else
{
$globalsicherheit=1;
$antwortsicherheit=1;
}

}

if ($antwortsicherheit == 1)
{
print "<center>";
print "<h1>Du hast leider ungültige Sonderzeichen in Deinem Beitrag verwendet.";
print "</center>";
}

if ($globalsicherheit == 1)
{
	print "<br>";
	print "<center>";
	print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
	print "</center>";
}

if ($globalsicherheit == 0)
{
	&pruefeusersicherheit;
	if ($usersicherheit == 1)
	{
		print "<br>";
		print "<center>";
		print "<h1>Dieser Nick ist registriert, Du hast ein falsches Paßwort verwendet.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
		print "</center>";
	}
		if ($usersicherheit == 0)
		{
		if (-e "daten/hauptdatei.txt")
		{
			open(IN,"daten/hauptdatei.txt");
			open(INS,">daten/hauptdateitmp.txt");
			if ($dateisperren == 1)
			{
			flock(IN,2) or die;
			flock(INS,2) or die;
			}
		$erfasst=0;
		while(<IN>)
		{
			$ztext=$_;
			chomp($ztext);
			if (length($ztext) > 0)
			{
			print INS "$ztext\n";
			}
			if ($erfasst == 0 and length($ztext) > 0)
			{
				@zwischendaten=split(/\t/,$ztext);	
				$erfasst=1;
			}
		}
		close(INS);
		close(IN);
		}
		$achtung=0;
		$laenge=$#zwischendaten;
		if ($laenge >=0)
		{
		$vorgaenger=$zwischendaten[0];
		$zwischenvorgaenger=substr($vorgaenger,0,4);
		$vorgaenger=$zwischenvorgaenger;
		}
		else
		{
		$vorgaenger='0000';
		}
		if (substr($vorgaenger,0,1) ne '0')
		{
			$ersetzt=1;
			$neuezahl=$vorgaenger+1;
		}
			if (substr($vorgaenger,0,2) ne '00' and $ersetzt == 0)
			{
				$neuezahl=substr($vorgaenger,1,3)+1;
				$ersetzt=1;
			}
			if (substr($vorgaenger,0,3) ne '000' and $ersetzt == 0)
			{
				$neuezahl=substr($vorgaenger,2,2)+1;
				$ersetzt=1;
			}
			if ($ersetzt == 0)
			{
				$neuezahl=substr($vorgaenger,3,1)+1;
			}
			while (length($neuezahl) < 4)
			{
				$neuezahl="0"."$neuezahl";
			}
		
				if ($neuezahl == 9999)
				{
				$neuezahl='0001';
				$achtung=1;
				}
				if (-e "daten/hauptdatei.txt")
				{
				open(IN,">daten/hauptdatei.txt");
				open(INS,"daten/hauptdateitmp.txt");
				if ($dateisperren == 1)
				{
					flock(IN,2) or die;
					flock(INS,2) or die;
				}
				print IN "$neuezahl\n";
				while(<INS>)
				{
				
				$text1=$_;
				chomp($text1);
				$zwischentext=substr($text1,0,4);
				#print "<h1>$zwischentext";
				if ($achtung == 1 and $zwischentext eq $neuezahl)
				{
				print "<h1>Übereinstimmung";
				}
				else
				{
				print IN "$text1\n";
				}
				
				}
				close(INS);
				close(IN);
				chmod "daten/hauptdatei.txt",0666;
				unlink "daten/hauptdateitmp.txt";
				}
				else
				{
				open(IN,">daten/hauptdatei.txt");
				if ($dateisperren == 1)
								{
					flock(IN,2) or die;
				}
				print IN "$neuezahl\n";
				close(IN);
				}
				@datuminformationen=localtime(time);
				$tag=$datuminformationen[3];
				$monat=$datuminformationen[4];
				$monat=$monat+1;
				$jahr=$datuminformationen[5];
				$jahr=$jahr+1900;
				$sekunde=$datuminformationen[0];
				$minute=$datuminformationen[1];
				$stunde=$datuminformationen[2];
				if (length($tag) == 1)
				{
				$tag="0"."$tag";
				}
				if (length($monat) == 1)
				{
				$monat="0"."$monat";
				}
				if (length($sekunde) == 1)
				{
				$sekunde="0"."$sekunde";
				}
				if (length($minute) == 1)
				{
				$minute="0"."$minute";
				}
				if (length($stunde) == 1)
				{
				$stunde="0"."$stunde";
				}
				if (length($email) == 0)
				{
					$oeffentlich='n';
					$benachrichtigung='n';
				}
				open(IN,">daten/$neuezahl.txt");
				print IN "$titel\n";
				print IN "$nick\n";
				print IN "$email\n";
				print IN "$oeffentlich\n";
				print IN "$benachrichtigung\n";
				print IN "$url\n";
				print IN "$tag\n";
				print IN "$monat\n";
				print IN "$jahr\n";
				print IN "$sekunde\n";
				print IN "$minute\n";
				print IN "$stunde\n";
				close(IN);
				chmod "daten/$neuenummer.txt",0666;
				$antwort =~ s/\n/<br>/g;
				open(IN,">beitraege/$neuezahl.txt");
				print IN "$antwort";
				close(IN);

				open(IN,"daten/$nummer.txt");
				$btitel=<IN>;
				chomp($btitel);
				$bnick=<IN>;
				chomp($bnick);
				$bemail=<IN>;
				chomp($bemail);
				$boeffentlich=<IN>;
				chomp($boeffentlich);
				$bbenachrichtigung=<IN>;
				chomp($bbenachrichtigung);
				close(IN);
				
if ($webmasterberichtigung == 1)
				{
open (SENDMAIL, "|$mailprogramm -oi -t");
print SENDMAIL <<"EOF";
From: $forumsname <$deineemail>
To: Webmaster <$deineemail>
Subject: Neuer Beitrag im $forumsname

Liebe Webmasterin, lieber Webmaster,
in Deinem Forum $forumsname wurde
am $tag.$monat.$jahr um $stunde:$minute:$sekunde Uhr
ein neuer Beitrag gepostet.
Benutze folgenden Link, um den Beitrag direkt 
anzuschauen:
$skriptpfad?action=ansehen&nummer=$neuezahl

Mit freundlichem Gruß aus Hildesheim
Andreas Hübner
(Autor Deines Forumskriptes)
http://www.single-verzeichnis.de
					
EOF
close(SENDMAIL);
				}
				
				print "<center>";
				print "<h1>$nick, vielen Dank für Deinen Beitrag im $forumsname.";
				print "</center>";
				print "<br>";
				print "<table border=0>";
				print "<td width=400 height=30 align=center>";
				print "<a href=\"$skriptpfad?action=ansehen&nummer=$neuezahl\"><h1>Zu Deinem Beitrag</a>";
				print "</td>";
				print "<td width=400 height=30 align=center>";
				print "<a href=\"$skriptpfad\"><h1>Zum Forum</a>";
				print "</td>";
				print "</table>";
				
}
}

}

sub loeschen
{
$nummer=param("nummer");
$nummer=~ s/^\s+//;
$nummer=~ s/\s+$//;
if ($nummer =~ /\D/ or length($nummer) == 0)
{
	print "<center>";
	print "<h1>Ein Fehler ist aufgetreten.";
	print "</center>";
}
else
{
$text=<<"TEXT";
<br>
<form method="post" action=$skriptpfad>
<input type="hidden" name="action" value="loeschenspeichern">
<input type="hidden" name="nummer" value=$nummer>
<table border=0>
<td width=400 height=30>
<h1>Bitte Admin-Paßwort eingeben:
</td>
<td width=400 height=30>
<input name="passwort" type="password" size="20" maxlength="50">
</td>
</table>
<br>
<center>
<input type="submit" value="Beitrag löschen">
</center>
</form>
TEXT
print "$text";
}
}

sub loeschenspeichern
{
$nummer=param("nummer");
$nummer=~ s/^\s+//;
$nummer=~ s/\s+$//;
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$globalsicherheit=0;
$passwortsicherheit=0;
$nummersicherheit=1;
if ($nummer =~ /\D/ or length($nummer) == 0)
{
$globalsicherheit=1;
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<center>";
print "<h1>Du hast ein ungültiges Admin-Paßwort eingegeben.";
print "</center>";
}

if ($globalsicherheit == 1)
{
	print "<br>";
	print "<center>";
	print "<a href=\"javascript:history.back()\"><h1>Fehler korrigieren</a>";
	print "</center>";
}
if ($globalsicherheit == 0)
{
	&pruefenummer;
	if ($nummersicherheit == 1)
	{
		print "<br>";
		print "<center>";
		print "<h1>Dieser Beitrag existiert nicht mehr.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
		print "</center>";
	}
	if ($nummersicherheit == 0)
	{
		if ($adminpasswort ne $passwort)
		{
		print "<br>";
		print "<center>";
		print "<h1>Falsches Adminpasswort.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Neuer Versuch</a>";
		print "</center>";	
		}
		if ($adminpasswort eq $passwort)
		{
			$zwischenzeilennummer=0;
			$zeilennummer=0;
			@zwischendaten=();
			open(IN,"daten/hauptdatei.txt");
			open(INS,">daten/hauptdateitmp.txt");
			if ($dateisperren == 1)
			{
				flock(IN,2) or die;
				flock(INS,2) or die;
			}
			while(<IN>)
			{
				$zwischenzeilennummer=$zwischenzeilennummer+1;
				$ztext=$_;
				chomp($ztext);
				if (substr($ztext,0,4) eq substr($nummer,0,4))
				{
				$zeilennummer=$zwischenzeilennummer;
				@zwischendaten=split(/\t/,$ztext);
				#print "<h1>$zeilennummer";
				}
				print INS "$ztext\n";
			}
			close(INS);
			close(IN);
			chmod "daten/hauptdateitmp",0666;
			$laenge=$#zwischendaten;
			$nummerlaenge=length($nummer);
			#print "<h1>@zwischendaten";
			for ($z=0;$z<=$laenge;$z+=1)
			{
				if (substr($zwischendaten[$z],0,$nummerlaenge) == $nummer)
				{
					#print "<h1>Übereinstimmung";
					#print "<h1>$zwischendaten[$z]";
					$zwischendaten[$z]='';

				}
				
			}
			#print "<h1>@zwischendaten";
			open(IN,">daten/hauptdatei.txt");
			open(INS,"daten/hauptdateitmp.txt");
			if ($dateisperren == 1)
			{
				flock(IN,2) or die;
				flock(INS,2) or die;
			}
			$zaehler=0;
			while(<INS>)
			{
							
				$zaehler=$zaehler+1;
				$text1=$_;
				chomp($text1);
				if ($zaehler == $zeilennummer)
				{
					$laenge=$#zwischendaten;
					for ($z=0;$z<=$laenge;$z+=1)
					{
					if (length($zwischendaten[$z]) > 0)
					{
						print IN "$zwischendaten[$z]\t";
					}
					}
					print IN "\n";
				}
				else
				{
					print IN "$text1\n";
				}
			}
			close(INS);
			close(IN);
			chmod "daten/hauptdatei.txt",0666;
			unlink "daten/hauptdateitmp.txt";
			unlink "daten/$nummer.txt";
			unlink "beitraege/$nummer.txt";
			print "<center>";
			print "<h1>Beitrag erfolgreich gelöscht.";
			print "<br><br>";
			print "<a href=\"$skriptpfad\"><h1>Zum Forum</a>";
			print "</center>";
			
		}
	}
}
}

sub registrieren
{
$text=<<"TEXT";
<table border=0>
<td width=800>
<h1>Hier kannst Du den Nick, den Du im Forum benutzen willst, mit einem Paßwort schützen.<br>
Dein Vorteil: Niemand anders mehr kann diesen Nick verwenden.
</td>
</table><br>
<form name="registrieren" method="post" action=$skriptpfad onSubmit="return pruefung()">
<input type="hidden" name="action" value="registrierenspeichern">
<table border=0>
<td width=400 height=30>
<h1>Nick, den Du registrieren möchtest (nur Buchstaben und Zahlen, keine Leerzeichen):
</td>
<td width=400 height=30>
<input name="nick" size=20 maxlength=30>
</td><tr>
<td width=400 height=30>
<h1>Bitte wähle Dein Paßwort (maximal 20 Zeichen):
</td>
<td width=400 height=30>
<input name="passwort" size=10 maxlength=20>
</td>
</table>
<br>
<table border=0>

<td width=400 height=30>
<a href="javascript:history.back()"><h1>Zur letzten Seite</a>
</td>
<td width=400 height=30>
<input type="submit" value="Nick registrieren">
</td>
</table>
</form>
<script language="JavaScript">
function pruefung()
{
if (document.registrieren.nick.value == "")
{
alert("Bitte gebe den Nick ein, den Du registrieren willst.");
return false;
}
if (document.registrieren.passwort.value == "")
{
alert("Bitte wähle ein Paßwort.");
return false;
}
return true;
}
</script>
TEXT
print "$text";
}

sub registrierenspeichern
{
$nick=param("nick");
$nick=~ s/^\s+//;
$nick=~ s/\s+$//;
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$globalsicherheit=0;
$usersicherheit=0;
if (length($nick) == 0)
{
$globalsicherheit=1;
}
if (length($passwort) == 0)
{
$globalsicherheit=1;
}
$nickintern=&umlauteumwandeln($nick);
if ($nickintern =~ /\W/)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Bitte verwende in Deinem Nick nur Buchstaben und Zahlen und keine Leerzeichen.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Bitte verwende in Deinem Paßwort nur Buchstaben und Zahlen und keine Leerzeichen.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";

}

if ($globalsicherheit == 0)
{
	$kleinnick=lc($nick);
	$kleinnickintern=&umlauteumwandeln($kleinnick);
	if (-e "user/$kleinnickintern.txt")
	{
		print "<br>";
		print "<center>";
		print "<h1>$nick ist leider bereits registriert. Probiere es bitte mit einem anderen Nick.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
		print "</center>";	
	}
	else
	{
		open(IN,">user/$kleinnickintern.txt");
		print IN "$nick\n";
		print IN "$passwort\n";
		close(IN);
		chmod "user/$kleinnickintern.txt",0666;
		print "<center>";
		print "<h1>Der Nick $nick wurde erfolgreich registriert.";
		print "<br><br>";
		print "<a href=\"$skriptpfad\"><h1>Zurück zum Forum</a>";
		print "</center>";
	}
}
}

sub userloeschen
{
$text=<<"TEXT";
<table border=0>
<td width=800>
<h1>Lieber Webmasterin, lieber Webmaster, hier kannst Du direkt einen registrierten User löschen.
</td>
</table><br>
<form name="loeschenspeichern" method="post" action=$skriptpfad>
<input type="hidden" name="action" value="userloeschenspeichern">
<table border=0>
<td width=400 height=30>
<h1>Nick, den Du löschen möchtest:
</td>
<td width=400 height=30>
<input name="nick" size=20 maxlength=40>
</td><tr>
<td width=400 height=30>
<h1>Dein Admin-Paßwort:
</td>
<td width=400 height=30>
<input name="passwort" type=\"password\" size=20 maxlength=50>
</td>
</table>
<br>
<table border=0>

<td width=400 height=30>
<a href=$skriptpfad><h1>Zum Forum</a>
</td>
<td width=400 height=30>
<input type="submit" value="Nick löschen">
</td>
</table>
</form>
TEXT
print "$text";
}

sub userloeschenspeichern
{
$nick=param("nick");
$nick=~ s/^\s+//;
$nick=~ s/\s+$//;
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$globalsicherheit=0;
$usersicherheit=0;
if (length($nick) == 0)
{
$globalsicherheit=1;
}
if (length($passwort) == 0)
{
$globalsicherheit=1;
}
$nickintern=&umlauteumwandeln($nick);
if ($nickintern =~ /\W/)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Dieser Nick dürfte eigentlich nicht existieren.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Ungültiges Admin-Paßwort.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";

}
if ($passwort ne $adminpasswort)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Falsches Admin-Paßwort.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";
}
if ($globalsicherheit == 0)
{
	$kleinnick=lc($nick);
	$kleinnickintern=&umlauteumwandeln($kleinnick);
	if (-e "user/$kleinnickintern.txt")
	{
		unlink "user/$kleinnickintern.txt";
		print "<center>";
		print "<h1>Der Nick $nick wurde erfolgreich gelöscht.";
		print "<br><br>";
		print "<a href=\"$skriptpfad\"><h1>Zurück zum Forum</a>";
		print "</center>";
	}
	else
	{
		
		print "<center>";
		print "<h1>Der Nick $nick wurde nicht gefunden.";
		print "<br><br>";
		print "<a href=\"javascript:history.back()\"><h1>Zurück zum Forum</a>";
		print "</center>";
	}
}

}

sub useruebersicht
{
$text=<<"TEXT";
<table border=0>
<td width=800>
<h1>Lieber Webmasterin, lieber Webmaster, hier kannst Du Dir alle registrierten User inklusive Paßwort ansehen:
</td>
</table><br>
<form name="uebersicht" method="post" action=$skriptpfad>
<input type="hidden" name="action" value="useruebersichtausfuehren">
<table border=0>
<td width=400 height=30>
<h1>Dein Admin-Paßwort:
</td>
<td width=400 height=30>
<input name="passwort" type="password" size=20 maxlength=50>
</td>
</table>
<br>
<table border=0>

<td width=400 height=30>
<a href=$skriptpfad><h1>Zum Forum</a>
</td>
<td width=400 height=30>
<input type="submit" value="Userübersicht starten">
</td>
</table>
</form>
TEXT
print "$text";
}

sub useruebersichtausfuehren
{
$passwort=param("passwort");
$passwort=~ s/^\s+//;
$passwort=~ s/\s+$//;
$globalsicherheit=0;
$usersicherheit=0;
if (length($passwort) == 0)
{
$globalsicherheit=1;
}
if ($passwort =~ /\W/)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Ungültiges Admin-Paßwort.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";

}
if ($passwort ne $adminpasswort)
{
$globalsicherheit=1;
print "<br>";
print "<center>";
print "<h1>Falsches Admin-Paßwort.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";
}
if ($globalsicherheit == 0)
{
opendir(IN,"user");
@usernamen=readdir(IN);
closedir(IN);
@usernamen=sort @usernamen;
$laenge=$#usernamen;
if ($laenge == (-1))
{
print "<center>";
print "<h1>Noch keine registrierten User vorhanden.";
print "<br><br>";
print "<a href=\"javascript:history.back()\"><h1>Zurück</a>";
print "</center>";
}
else
{
print "<table border=0>";
print "<td width=400 height=30>";
print "<h1>Username:";
print "</td>";
print "<td width=400 height=30>";
print "<h1>Paßwort:";
print "</td>";
print "<tr>";
for ($z=0;$z<=$laenge;$z+=1)
{
$text=$usernamen[$z];
chomp($text);
if ($text =~ /\w/ and length($text) > 0 and $text ne '.htaccess')
{
$kleinnick=lc($text);
#print "<h1>$kleinnick";
open (IN,"user/$kleinnick");
$nick=<IN>;
chomp($nick);
$passwort=<IN>;
chomp($passwort);
close(IN);
print "<td width=400 height=30>";
print "<h1>$nick";
print "</td>";
print "<td width=400 height=30>";
print "<h1>$passwort";
print "</td>";
print "<tr>";
}
}
print "</table>";
}
}

}

sub umlauteumwandeln
{
my($utext)=shift(@_);
$utext =~ s/ä/ae/g;
$utext =~ s/Ä/AE/g;#
$utext =~ s/ö/oe/g;
$utext =~ s/Ö/OE/g;
$utext =~ s/ü/ue/g;
$utext =~ s/Ü/UE/g;
return($utext);
}
