#!/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
Password:
You currently have $messagenumber messages posted.

Please enter the number of messages you would like to remain on the board. For example, if you enter '100', your board will only show 100 messages. The oldest messages will be deleted. All messages deleted will also have their responses deleted. The number that you will cut to is only shown on the main board, so you could cut it to 100 messages, but still have 300 responses to those 100 messages.
Cut Board Messages to :

Change Administration Password

Old Password: New Password:

©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; }