#!/usr/bin/perl
###########################################################################
#                                                                         #
#        Classifieds.pl - Perl Script for Posting Classified Ads          #
#                                                                         #
#           geschrieben von Greg Mathews - greg@notts.net                 #
#									  #
# Überarbeitung und portierung ins Deutsche durch Dan Sepeur		  #
# URL: http://www.tag4tag.com						  #
# Mail: dan@tentacle.de							  #
#                                                                         #
###########################################################################

###########################################################################
#
# Definieren Sie die folgenden Variablen in Ihrem HTML-Formular:
#
#	ClassifiedsDir - Der Pfad zum Verzeichnis, in welchem die Postings
#			 gespeichert sind.
#	ErrorReturn    - Die URL zu der Seite die angezeigt werden soll,
#			 wenn ein Fehler auftaucht.
#	ReturnURL      - Die URL zu der Seite die angezeigt werden soll,
# 			 wenn das Posting erfolgreich war
&UnWeb;
$return_name=$in{'return'}; 
$mailprog=$in{'mailprog'};
&remove;

sub UnWeb {

   # Get the input
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

   # Split the name-value pairs
   @pairs = split(/&/, $buffer);

   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);

      # Un-Webify plus signs and %-encoding
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $value =~ s/<!--(.|\n)*-->//g;

      if ($allow_html != 1) {
         $value =~ s/<([^>]|\n)*>//g;
      }
      else {
         unless ($name eq 'body') {
	    $value =~ s/<([^>]|\n)*>//g;
         }
      }

      $in{$name} = $value;
   }

}


#######################
# Print HTML Header

sub PrintHeader {

	print "Content-type: text/html\n\n";
}
sub remove {
if (($in{'RealName'} eq "") || ($in{'E-MailAddress'} eq "") || ($in{'Addno'} eq "") || ($in{'Department'} eq "")) {
		# Einige Felder nicht ausgefüllt? Diese Fehlermeldung wird gezeigt
		&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>Fehlermeldung</title>\n";
		print "</head>\n";
		print "<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" link=\"#008000\" vlink=\"#800040\">\n";
		print "\n";
		print "<h1>Beim L&ouml;schen ist ein Fehler aufgetreten:</h1><p>\n";
		print "Ein Feld war leer. Alle Felder müssen ausgefüllt werden, bevor richtig gelöscht werden kann.<p>\n";
		print "<P>$in{'RealName'}<br>$in{'E-MailAddress'}<br>$in{'Addno'}<br>$in{'Department'}<br>\n";
		print "<hr><p><center><a href=$in{'ErrorReturn'}>Zur&uuml;ck zum Formular</a><p><hr>\n";
		print "© 1997 und designt und programmiert von <a href=\"mailto:webmaster\@notts.net\">Greg Mathews</a>.  All Rights Reserved.<br>\n";
		print "Ins Deutsche portiert und bearbeitet durch <a href=\"http://www.tag4tag.com\">Tag -4- Tag</a>. <br>\n";
		print "</body>\n";
		print "</html>\n";
		
		# Aufruf zum verlassen des Scriptes, wenn ein Fehler auftaucht
		exit;
}
	# Löschen des Datensatzes aus der Datei

	open(ADFILE,"$in{'ClassifiedsDir'}$in{'Department'}.html") || die $!;
		@main = <ADFILE>;
		close(ADFILE);

	$del = "0";
	$del1 = "0";
	open(ADFILE,">$in{'ClassifiedsDir'}$in{'Department'}.html") || die $!;
	      foreach $main_line (@main) {
	         if ($main_line =~ /<!-- $in{'Addno'} $in{'RealName'} $in{'E-MailAddress'}/) {
			&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>ad $in{'Addnp'} wurde gel&ouml;scht</title>\n";
		print "</head>\n";
		print "<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" link=\"#008000\" vlink=\"#800040\"><font face=\"COMIC SANS MS,ARIAL\" size=4><P><BLOCKQUOTE>Das folgende Angebot wurde gel&ouml;scht.<P>\n";
		print "\n";

			$del = "1";
			$del1 = "1";
		   }
		   if ($del eq "1"){
			print "$main_line";
			if ($main_line =~ /<!-- end $in{'Addno'} -->/) {
				$del = "0";
			}
	         }
	         else {
	            print ADFILE "$main_line";
	         }
	      }
	open(ADFILE,"$in{'ClassifiedsDir'}UserDataFile.html") || die $!;
		@main = <ADFILE>;
		close(ADFILE);

	$del = "0";
	open(ADFILE,">$in{'ClassifiedsDir'}UserDataFile.html") || die $!;
	      foreach $main_line (@main) {
	         if ($main_line =~ /<!-- $in{'Addno'} $in{'Department'} $in{'E-MailAddress'}/) {
			$del = "1";
		   }
		   if ($del eq "1"){
			if ($main_line =~ /<!-- end $in{'Addno'} -->/) {
				$del = "0";
			}
	         }
	         else {
	            print ADFILE "$main_line";
	         }
	      }
	if ($del1 eq "0"){
			&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>ad $in{'Addnp'} wurde gel&ouml;scht</title>\n";
		print "</head>\n";
		print "<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" link=\"#008000\" vlink=\"#800040\"><font face=\"COMIC SANS MS,ARIAL\" size=4><P><BLOCKQUOTE>Das Angebot was Sie angegeben haben wurde nicht gefunden.<P></blockquote></body></html>\n";
}
}