#!/usr/local/bin/perl # ************************************************************************ # Program: Radiation Hyperthread System (Main Module) # Author: Andrew Cowan # Date: Dec. 29, 1995 # Update: Dec. 29, 1995 # ************************************************************************ # Hyperthread is copyright (C) 1995 GlobalMedia Design Inc, All rights # reserved. # ************************************************************************ # ************************************************************************ # Module Requirements Section # ************************************************************************ require 'radthread-utils.pl'; require 'radthread-msgs.pl'; require 'radthread-search.pl'; require 'radthread-help.pl'; require 'radthread-headers.pl'; # ************************************************************************ # Main Routine # ************************************************************************ print "Content-type: text/html \n\n"; # Send content type to browser &cgiparse; # Parse the form fields (if any) &startup; # Assign variables from the form fields $area = $DEF_AREA; &get_date; # Get the date and convert from military format &load_areas; # Load the areas list from the database if ($mode eq "AREA" || $mode eq 'NEXT' || $mode eq 'PREV'){ # User just selected an area to go to &interpret; }elsif ($mode eq "Create Thread"){ # User selected to create a thread &create_thread; }elsif ($mode eq "MSG"){ # User selected a message to read &display_message($area, $message); }elsif ($mode eq "POST"){ # User Selected Post Message to Area &post_form($area, "NEW"); }elsif ($mode eq "REPLY"){ # User Selected Reply to Message &post_form($area, "REPLY"); }elsif ($mode eq "NEW_POST"){ # User completed post message form &post_handler($area, "NEW"); }elsif ($mode eq "REPLY_POST"){ # User completed post reply form &post_handler($area, "REPLY"); }elsif ($mode eq "SFORM"){ # User requested search form &search_form; }elsif ($mode eq "SEARCH"){ # User completed search form &search; }elsif ($mode eq "HELP"){ # User requested help &help; }elsif (($mode eq "") || ($mode eq "TOP")){ # Send main menu of areas #&print_header; #&print_menu; #&print_create_form; &interpret; #&print_footer; } exit(0); # Time to go to bed # ************************************************************************ # Subroutines Section # ************************************************************************ # ************************************************************************ # Startup - Assign form fields to variables # ************************************************************************ sub startup{ $mode = $elements{'mode'}; $area = $elements{'area'}; $message = $elements{'message'}; $name = $elements{'name'}; $email = $elements{'email'}; $subject = $elements{'subject'}; $message_body = $elements{'message_body'}; $keyword = $elements{'keyword'}; $maxhits = $elements{'maxhits'}; $segment = $elements{'segment'}; $back = $elements{'back'}; $id = $elements{'id'}; $pwd = $elements{'pwd'}; $thread = $elements{'thread'}; if (defined($elements{'index'})){ $index = $elements{'index'}; } if (defined($elements{'FULL_THREADS'})){ $FULL_THREADS = $elements{'FULL_THREADS'}; } } # ************************************************************************ # Urldecode Routines # ************************************************************************ # Copyright & Disclaimer. (James Tappin) # This set of routines may be freely distributed, modified and # used, provided this copyright & disclaimer remains intact. # This package is used at your own risk, if it does what you # want, good; if it doesn't, modify it or use something else--but # don't blame me. Support level = negligable (i.e. mail bugs but # not requests for extensions) # ************************************************************************ sub cgiparse { if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); } elsif ($ENV{'REQUEST_METHOD'} eq "GET") { $data = $ENV{'QUERY_STRING'}; } else { # # Bad request method report and exit. # &method_error; } %elements = &url_decode(split(/[&=]/,$data)); %elements; } sub method_error { print "\nCGI Script Requires use of method POST or GET.\n"; exit; } sub url_decode { foreach (@_) { tr/+/ /; s/%(..)/pack("c",hex($1))/ge; } @_; } # ************************************************************************ # End of Radiation Hyperthread (Main Module) # ************************************************************************