#!/usr/local/bin/perl
######################################################################
# BEFORE TRYING TO EDIT THIS SCRIPT, READ THE README FILE
######################################################################
#
# The Dream Catcher's Web Free CGI Scripts
# Message Board
# Created by Seth Leonard
#
# http://dreamcatchersweb.com/scripts/
#
# (c)2000 Seth Leonard
# All Rights Reserved
#
######################################################################
$passwordfile = "password.txt";
$messagedir = "messages";
$responsedir = "responses";
$adminscript = "http://dreamcatchersweb.com/scripts/cgi-bin/admin.cgi";
############################################################################
read(STDIN, $namevalues, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $namevalues);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/<([^>]|\n)*>//g;
$INPUT{$name} = $value;
}
$action = $INPUT{'action'};
if ($action eq 'delete') {
&delete;
}
if ($action eq 'change') {
&change;
}
############################################################################
# HTML PAGE TO DELETE ENTRIES
############################################################################
opendir (MESSAGES, "$messagedir");
@files = readdir(MESSAGES);
close (MESSAGES);
$numberoffiles = @files;
$numberoffiles -= 1;
@rmessages = @files[2..$numberoffiles];
@messages = reverse(@rmessages);
$messagenumber = @messages;
print ("Content-type: text/html\n\n");
print <<"html";
Delete Entries
©1997 Dream Catchers Technologies, Inc.
html
exit;
############################################################################
# CHANGE PASSWORD
############################################################################
sub change {
$userpassword = crypt($INPUT{'password'}, sb);
open (USER, "$passwordfile");
$password = ;
close (USER);
chop ($password) if ($password =~ /\n$/);
unless ($password eq $userpassword) {
print ("Content-type: text/html\n\n");
print ("\n");
print ("You Entered an Illegal Password\n");
print ("\n");
exit;
}
$newpassword = crypt($INPUT{'newpassword'}, sb);
open (USER, ">$passwordfile");
print USER ("$newpassword");
close (USER);
print ("Content-type: text/html\n\n");
print ("\n");
print ("Your New Password is $INPUT{'newpassword'}\n");
print ("\n");
exit;
}
############################################################################
# DELETE MESSAGES
############################################################################
sub delete {
$userpassword = crypt($INPUT{'password'}, sb);
open (USER, "$passwordfile");
$password = ;
close (USER);
chop ($password) if ($password =~ /\n$/);
unless ($password eq $userpassword) {
print ("Content-type: text/html\n\n");
print ("\n");
print ("You Entered an Illegal Password\n");
print ("\n");
exit;
}
opendir (MESSAGES, "$messagedir");
@files = readdir(MESSAGES);
close (MESSAGES);
$numberoffiles = @files;
$numberoffiles -= 1;
@rmessages = @files[2..$numberoffiles];
foreach $message (@rmessages) {
$x = 1;
while ($x < @rmessages) {
if ($rmessages[$x - 1] > $rmessages[$x]) {
@rmessages[$x - 1, $x] = @rmessages[$x, $x - 1];
}
$x++;
}
}
@messages = reverse(@rmessages);
$messagenumber = @messages;
$deletepast = $INPUT{'number'};
$messagenumber -= 1;
@deletemessages = @messages[$deletepast..$messagenumber];
$deletenumber = 0;
foreach $deletemessage (@deletemessages) {
unlink ("$messagedir/$deletemessage");
chop ($deletemessage);
chop ($deletemessage);
chop ($deletemessage);
chop ($deletemessage);
$deleted[$deletenumber] = $deletemessage;
$deletenumber += 1;
}
opendir (MESSAGES, "$responsedir");
@files = readdir(MESSAGES);
close (MESSAGES);
$numberoffiles = @files;
$numberoffiles -= 1;
@responses = @files[2..$numberoffiles];
foreach $response (@responses) {
open (RESPONSE, "$responsedir/$response");
($subject, $name, $postunder, $responses, $date, $puser, $post) = ;
close (RESPONSE);
chop ($postunder) if ($postunder =~ /\n$/);
chop ($response);
chop ($response);
chop ($response);
chop ($response);
foreach $deleted (@deleted) {
if ($postunder eq $deleted) {
$deleted[$deletenumber] = $response;
$deletenumber += 1;
unlink ("$responsedir/$response.txt");
}
}
}
print ("Location: $adminscript\n\n");
exit;
}