#!/usr/bin/perl # Ultimate Bulletin Board (UBB), Version 6 # Official Release Date for UBB6: March 15, 2001 # First version of UBB created May 7, 1996 (by Ted O'Neill). # This entire program is copyright Infopop Corporation, 2001. # For more info on the Ultimate Bulletin Board and other Infopop # Products/Services, visit: http://www.infopop.com # Program Author: Ted O'Neill, with assistance from Michael Farris, Dave Dreezer # Special Thanks to: Rosemary O'Neill, Mark Badolato, Charles Capps, Graeme, Jesus de la Garza, Joe Siegler, Hal, Brett Harris, Kristi Miller, Celeste Combs, everyone who beta-tested, and all of our support moderators! # UBB6 is dedicated to Edward Kriz. # You may not distribute this program in any manner, modified or otherwise, without the express, written written consent from Infopop Corporation. # You may make modifications, but only for your own use and within the confines of the UBB License Agreement (see our website for that). # You may not distribute "hacks" for the UBB without approval from Infopop. # Note: if you modify ANY code within the UBB, we at Infopop Corporation cannot offer you support-- thus modify at your own peril :) BEGIN { ($0 =~ m!(.*)(\\|/)[^/\\]+!) && unshift(@INC, $1, "$1$2Modules"); } use lib("./Modules", "."); # in the event $0 is not set use strict; use Fcntl ':flock'; use UBBCGI qw(:cgi); use UBBCGI::Carp qw(fatalsToBrowser set_message); use vars qw(%vars_whos_online @Ell_cookie $invisible_pref @people); use vars qw(%vars_wordlets_mods); use vars qw(%vars_style_reference $trademark $trade $InfopopCopyright %weights $version $version_number $masterCharset $release_j %GotTime $template $vars_graemlins %template %vars_config %vars_misc %vars_registration %vars_forums %vars_styles %vars_display %vars_style %vars_email %vars_time %vars_search %vars_pm %vars_wordlets %vars_wordlets_err %vars_wordlets_email %vars_wordlets_img %vars_wordlets_date %template_match $username $password $last_login_dt $session_login_dt $last_login_j $session_login_j $days_prune $LastLoginTime $pubname $user_topic_view $user_number @ubber @login @session $ThisHTML $exact_path @memberslist %in $memlistopen $cache_cookie $forum_threads $summary @alltheforums @allthecategories @memberslist_array @memberslist_array %forum_thread_data %ProfileNumber %member_profile $CurrentTab $Hiddens $direct_to $Legend $LoginWording $MainButtonsLine $TableWidth2 $ContactLine $TBT $TBB $Header $Footer $EmailHeader $show_logout $show_logout_noreg $instant_jscript $title_wording); ############################################################################## # NOTE TO USERS WHO ARE RUNNING UBB IN THE NON-WRITABLE CGI-BIN SITUATION: # Modify the path in the following line to reflect the VariablesPath! # There is NO NEED to modify this line unless you are using a different # VariablesPath. PLEASE use the UBB's CGI directory as the VariablesPath # if at all possible. Thanks. ############################################################################## eval { do "/home/digicam/ceoinfo.ru/html/forum/variables/vars_config.cgi"; }; &CheckDollarAt($@); # No need to touch this now that we have the VariablesPath! foreach my $file (qw(display misc email time search pm registration template_match whos_online wordlets wordlets_err wordlets_img wordlets_date wordlets_mods)) { eval { do "$vars_config{VariablesPath}/vars_$file.cgi"; }; &CheckDollarAt($@); } eval { require "$vars_config{CGIPath}/ubb_lib.cgi"; }; &CheckDollarAt($@); &InitImportantStuff; #ubb_lib &RequireCode("$vars_config{CGIPath}/ubb_lib_files.cgi"); &RequireCode("$vars_config{CGIPath}/ubb_lib_time.cgi"); &LoadTemplate("public_common"); #out in the middle of nowhere, we have a subroutine! sub CheckDollarAt { my $error = shift; return unless $error; $masterCharset = "ISO-8859-1" unless $masterCharset; print header( -charset => "$masterCharset", -type => "text/html", ); print "


There was a compilation error while loading the UBB libraries and data files:

\n$error

"; #, Dumper \%vars_registration; print "Please make sure that you uploaded the CGI and Variables files to the proper directory, permissions are set properly " . "on the files, and that paths in the control panel are set correctly.

"; exit; } # We want to do this now rather than continue to make # up to 1000 calls to UBBCGI routines per instance... %in = map{$_ => param($_)} param(); #map is your friend! my $templatefile; #, $summary; #if we've gotten this far, we have template_matches if ((($in{ubb} =~ m/^(newtopic|submit_new_topic|get_topic|reply|submit_new_reply|get_ip|delete_topic|close_topic|open_topic|next_topic|transfer|transfer_topic|edit_post|submit_edit|forum)$/) && ($in{'f'})) && ($in{f} =~ m/^\d+$/)) { my $forumnumber = "forum_" . $in{f}; $templatefile = $template_match{$forumnumber}; } elsif ($in{ubb} =~ m/^(recent_user_posts|get_daily|search|do_search)$/) { $templatefile = $template_match{search}; } elsif ($in{ubb} =~ m/^(get_pm|private_message|submit_private_message|pm_prune|pm_delete|pm_reply|submit_pm_reply|ignore_list|buddy_list|do_ignore|do_buddy|update_ignore|update_buddy)$/) { $templatefile = $template_match{private_message}; } elsif ($in{ubb} =~ m/^(faq)$/) { $templatefile = $template_match{faq}; } elsif ($in{ubb} =~ m/^(get_profile|edit_profile|my_profile|my_rating_list|edit_my_profile|rate_member)$/) { $templatefile = $template_match{profile}; } elsif ($in{ubb} =~ m/^(agree|coppa_agree|register_page|underage_register_page|show_coppa_form|submit_registration|login)$/) { $templatefile = $template_match{registration}; } elsif ($in{ubb} =~ m/^(ubb_code_page)$/) { $templatefile = $template_match{ubb_code}; } elsif ($in{ubb} =~ m/^(email|send_topic|lost_password|find_lost)$/) { $templatefile = $template_match{email}; } else { $templatefile = $template_match{summary_page}; $summary = 1; } #endelse %vars_style = &LoadStyleTemplate($templatefile); # If we grabed a template file, reassign the character set # Otherwise, $masterCharset is called in from ubb_lib $masterCharset = $vars_style{thisCharset} if $vars_style{thisCharset}; $cache_cookie = $vars_config{cache_pw}; $template = \%template; # set main buttons options $MainButtonsLine = &MainButtonOptions; # in ubb_lib.pl # set date/time &GetDateTime; # counter &hit_me; # for misc actions -- my %deadhash = &LoadStyleTemplate($template_match{transition}) if(($summary == 1) && ($template_match{transition} ne $template_match{summary})); # intentional void context - just want to load it up #now that we have our style template, we can do nice errors again! set_message(\&StandardHTML2); # check our Perl version die "Perl reports version $]!\n\nUBB will not run under this version, it needs 5.004 or higher!\n" if $] < 5.004; # standard argument my $ubb = $in{ubb}; my $skip_cookie_check; my $logoff; # is forum closed? if ($vars_misc{BBStatus} ne 'ON') { &set_page_elements; #print qq%Content-type: text/html\n\n%; print header( -charset => "$masterCharset", -type => "text/html", ); &StandardHTML("$vars_misc{BBClosedMessage}"); exit(0); } if ($ubb eq 'clearcookies') { &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &clear_cookies; exit(0); } #end clearcookies if ($ubb eq 'markallread') { &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &mark_all_read; exit(0); } #end clearcookies if ($ubb eq 'forum_pw_check') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_forum.cgi"); &forum_pw_check; exit(0); } #end forum_pw_check # perform user login? if ($ubb eq 'do_login') { &GetOrPost("POST"); my $ip_number = $ENV{'REMOTE_ADDR'}; &check_ip_bans($ip_number); $skip_cookie_check = 'true'; &RequireCode("$vars_config{CGIPath}/ubb_lib_2.cgi"); my @user_info = &verify_id("$in{username}", "$in{password}"); my $pubname = $user_info[0]; my $dp = $user_info[1]; my $profile_number = $user_info[2]; my $mod_q = $user_info[3]; chomp(my $writeadmin = (&OpenProfile($profile_number))[4]); chomp(my $this_un = (&OpenProfile($profile_number))[0]); chomp(my $this_pw = (&OpenProfile($profile_number))[1]); chomp($mod_q); #6.1.0 - now forbidding login without queue approval if ($mod_q eq 'Q') { # user is registered but not approved! print header( -charset => "$masterCharset", -type => "text/html", ); &StandardHTML("$vars_wordlets_err{awaiting_approval}"); exit(0); } if ($writeadmin !~ /Write/) { #user has no write permissions -> can't login print header( -charset => "$masterCharset", -type => "text/html", ); &StandardHTML("$vars_wordlets_err{user_not_approved}"); exit(0); } if ($dp eq '') { $dp = "$vars_display{DaysPruneDefault}"; } my $cookie = cookie( -name => "ubber$vars_config{Cookie_Number}", -value => [$this_un, $this_pw, $pubname, $dp, $profile_number], -path => '/', -expires => '+2y' ); $username = $in{username}; $user_number = $profile_number; $in{whos_online_invisible} = ($in{whos_online_invisible} eq "yes") ? "hideme" : ""; my $Ell_cookie = cookie( -name=> "Ell$vars_config{Cookie_Number}", -value=> [$in{whos_online_invisible}], -path=> '/', -expires=> '+2y' ); #print header(-cookie=>[$cookie]); print header( -cookie => [$cookie, $Ell_cookie], -charset => "$masterCharset" ); # display refer page my $clean_cgi = quotemeta($vars_config{CGIURL}); if (($in{refer} ne '') && ($in{refer} !~ /logoff$/) && ($in{refer} !~ /cookies$/) && ($in{refer} !~ /find_lost$/) && ($in{refer} !~ /password$/) && ($in{refer} =~ /^$clean_cgi/)) { # take viewer back to topic &set_page_elements; &Transition("$in{refer}", "$vars_wordlets{thanks_for_login}", "$in{refer}"); exit(0); } else { $ubb = ''; } } # end do login # perform user logoff? if ($ubb eq 'logoff') { $skip_cookie_check = 'true'; my $cookieA = cookie( -name => "ubber$vars_config{Cookie_Number}", -value => ['', ''], -path => '/', -expires => '-2y' ); my $cookieB = cookie( -name => "session$vars_config{Cookie_Number}", -value => ['', ''], -path => '/', -expires => '-2y' ); my $cookieC = cookie( -name => "forumpw$vars_config{Cookie_Number}", -value => ['', ''], -path => '/', -expires => '-2y' ); my $cookieD = cookie( -name => "Ell$vars_config{Cookie_Number}", -value => ['', ''], -path => '/', -expires => '-2y' ); #print header(-cookie=>[$cookieA, $cookieB, $cookieC]); print header( -cookie=>[$cookieA, $cookieB, $cookieC, $cookieD], -charset => "$masterCharset", ); # confirm logoff &set_page_elements; &StandardHTML($vars_wordlets{logged_off}); exit(0); } # end logoff # retrieve cookies! @ubber = cookie("ubber$vars_config{Cookie_Number}"); if ($ubber[0] ne '') { $username = $ubber[0]; } if ($ubber[1] ne '') { $password = $ubber[1]; } if ($ubber[2] ne '') { $pubname = $ubber[2]; } if ($ubber[3] ne '') { $user_topic_view = $ubber[3]; } if ($ubber[4] ne '') { $user_number = $ubber[4]; } @Ell_cookie = cookie("Ell$vars_config{Cookie_Number}"); if ($Ell_cookie[0] ne '') { $invisible_pref = $Ell_cookie[0]; } #make sure the user is not forging his cookie to get into a protected area if (($vars_display{MembersOnlyAccess} eq 'YES') && (@ubber)) { my @checkTheProfile = &verify_id_num_2($username, $password, $user_number); unless ($checkTheProfile[4] =~ /Write/) { print header( -charset => "$masterCharset", ); &StandardHTML($vars_wordlets_err{user_not_approved}); } } @login = cookie("login$vars_config{Cookie_Number}"); if ($login[0] ne '') { $last_login_dt = $login[0]; } if ($login[1] ne '') { $last_login_j = $login[1]; } @session = cookie("session$vars_config{Cookie_Number}"); if ($session[0] ne '') { $session_login_dt = $session[0]; } if ($session[1] ne '') { $session_login_j = $session[1]; } # in case this is a new visitor! if ($last_login_dt eq '') { $last_login_dt = 'NEW'; } # set login cookie, if necessary if ($skip_cookie_check ne 'true') { if ($session_login_dt eq '') { # set session cookie: # this is a temp cookie that stores previous last login my $cookie1 = cookie( -name => "session$vars_config{Cookie_Number}", -value => [$last_login_dt, $last_login_j], -path => '/' ); # set new last login my $cookie2 = cookie( -name => "login$vars_config{Cookie_Number}", -value => [$GotTime{LastLoginDT}, $GotTime{LastLoginJulian}], -path => '/', -expires => '+1y' ); my $cookie3; # reconfirm user data- in case profile details were changed if ($username ne '') { my @this_profile = &verify_id_num_2($username, $password, $user_number); chomp($this_profile[1]); chomp($this_profile[0]); chomp($this_profile[21]); chomp($this_profile[15]); if ($this_profile[15] eq '') { $this_profile[15] = "$this_profile[0]"; } $cookie3 = cookie( -name => "ubber$vars_config{Cookie_Number}", -value => [$this_profile[0], $this_profile[1], $this_profile[15], $this_profile[21], $user_number], -path => '/', -expires => '+2y' ); } #print header(-cookie=>[$cookie1, $cookie2, $cookie3]); print header( -cookie => [$cookie1, $cookie2, $cookie3], -charset => "$masterCharset" ); } else { unless ($ubb =~ m/^(submit_new_reply|submit_new_topic|submit_registration|edit_profile)$/) { #print qq%Content-type: text/html\n\n%; print header( -charset => "$masterCharset", -type => "text/html", ); } } } #if not do_login # members only acess check if ($vars_display{MembersOnlyAccess} eq 'YES') { if (($username eq '') || ($logoff eq 'true')) { unless ($ubb =~ m/^(agree|coppa_agree|show_coppa_form|register_page|underage_register_page|submit_registration|lost_password|find_lost)$/) { &set_page_elements; &LoadTemplate("public_login"); exit(0); } } } # all ubb options: $ubb = "" unless $ubb; # who's online if ($ubb eq 'whos_online') { &RequireCode("$vars_config{CGIPath}/ubb_whos_online.cgi"); &WriteUserSession("$vars_wordlets_mods{whos_online_viewing} $vars_wordlets_mods{whos_online_whos_online}", $user_number, $invisible_pref); &whos_online($user_number, $invisible_pref); exit(0); } # forum summary if ($ubb eq '') { &RequireCode("$vars_config{CGIPath}/ubb_whos_online.cgi"); if (exists $in{category}) { my $whos_online_cat_name = &GetCatName($in{category}); &WriteUserSession("$vars_wordlets_mods{whos_online_browsing} $whos_online_cat_name", $user_number, $invisible_pref); } else { &WriteUserSession("$vars_wordlets_mods{whos_online_viewing} $vars_wordlets_mods{whos_online_main_page}", $user_number, $invisible_pref); } &RequireCode("$vars_config{CGIPath}/ubb_forum_summary.cgi"); &forum_summary; exit(0); } if ($ubb eq 'login') { &set_page_elements; &LoadTemplate("public_login"); exit(0); } if ($ubb eq 'agree') { &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); &do_agree; exit(0); } #end agree if ($ubb eq 'coppa_agree') { &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); &coppa_agree; exit(0); } #end coppa_agree if ($ubb eq 'register_page') { &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); ®ister_page; exit(0); } #end register_page if ($ubb eq 'underage_register_page') { &GetOrPost("POST"); if ($vars_registration{COPPAType} eq 'COPPADenied') { &StandardHTML("$vars_wordlets_err{age_deny}"); } elsif ($vars_registration{COPPACheck} ne 'ON') { &StandardHTML("$vars_wordlets_err{coppa_turned_off}"); } else { &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); &underage_register_page; } exit(0); } #end underage_register_page if ($ubb eq 'show_coppa_form') { &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); if ($vars_registration{COPPAType} eq 'COPPADenied') { &StandardHTML("$vars_wordlets_err{age_deny}"); } elsif ($vars_registration{COPPACheck} ne 'ON') { &StandardHTML("$vars_wordlets_err{coppa_turned_off}"); } else { %vars_style = &LoadStyleTemplate($template_match{registration}); &set_page_elements; my $COPPAInstructions = &ConvertReturns($vars_registration{COPPAInstructions}); &LoadTemplate("public_reg_confirm_kid"); } exit(0); } #end show_coppa_form if ($ubb eq 'submit_registration') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_registration.cgi"); &submit_registration; exit(0); } #end submit_reg if ($ubb eq 'forum') { if ($in{f} =~ /CAT:/) { my ($j, $cat_number); ($j, $cat_number) = split (/:/, $in{f}); $in{category} = $cat_number; my $whos_online_cat_name = &GetCatName($cat_number); &RequireCode("$vars_config{CGIPath}/ubb_whos_online.cgi"); &WriteUserSession("$vars_wordlets_mods{whos_online_browsing} $whos_online_cat_name", $user_number, $invisible_pref); &RequireCode("$vars_config{CGIPath}/ubb_forum_summary.cgi"); &forum_summary; } else { &RequireCode("$vars_config{CGIPath}/ubb_forum.cgi"); &get_forum; } exit(0); } # end forum if ($ubb eq 'rate_member') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &rate_member; exit(0); } #end rate_member if ($ubb eq 'email') { &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &email_user; exit(0); } #end email if ($ubb eq 'edit_my_profile') { &RequireCode( "$vars_config{CGIPath}/ubb_profile.cgi"); &edit_my_profile; exit(0); } #end edit_my_profile if ($ubb eq 'my_profile') { &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &my_profile; exit(0); } #end my_profile if ($ubb eq 'my_rating_list') { &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &my_rating_list; exit(0); } #end my_rating_list if ($ubb eq "recent_user_posts") { &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &recent_user_posts; exit(0); } #end recent_user_posts if ($ubb eq 'get_profile') { &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &get_profile; exit(0); } #end get_profile if ($ubb eq 'edit_profile') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_profile.cgi"); &edit_profile; exit(0); } #end edit_profile if ($ubb eq 'newtopic') { &RequireCode("$vars_config{CGIPath}/ubb_new_topic.cgi"); &new_topic_page; exit(0); } #end newtopic if ($ubb eq 'submit_new_topic') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_new_topic.cgi"); &submit_new_topic; exit(0); } #end submit_new_topic if ($ubb eq 'get_topic') { &RequireCode("$vars_config{CGIPath}/ubb_get_topic.cgi"); &get_topic($in{f}, $in{t}); exit(0); } #end get_topic if ($ubb eq 'reply') { &RequireCode("$vars_config{CGIPath}/ubb_new_reply.cgi"); &reply_page; exit(0); } #end reply if ($ubb eq 'submit_new_reply') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_new_reply.cgi"); &submit_new_reply; exit(0); } #end submit_new_reply if ($ubb eq 'get_pm') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &get_pm; exit(0); } #end get_pm if ($ubb eq 'sent_pms') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &sent_pm_box; exit(0); } #end get_pm if ($ubb eq 'private_message') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &private_message; exit(0); } #end private_message if ($ubb eq 'submit_private_message') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &submit_pm; exit(0); } #end submit_pm if ($ubb eq 'pm_prune') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_prune; exit(0); } #end pm_prune if ($ubb eq 'pm_delete') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_delete; exit(0); } #end pm_delete if ($ubb eq 'pm_reply') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_reply; exit(0); } # end pm_reply if ($ubb eq 'submit_pm_reply') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &submit_pm_reply; exit(0); } #end submit_pm_reply if ($ubb eq 'ignore_list') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_list('ignore'); exit(0); } #end ignore_list if ($ubb eq 'buddy_list') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_list('buddy'); exit(0); } #end buddy_list if ($ubb eq 'do_ignore') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_do_list('ignore'); exit(0); } #end do_ignore if ($ubb eq 'do_buddy') { &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_do_list('buddy'); exit(0); } #end do_buddy if ($ubb eq 'update_ignore') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_update_list('ignore'); exit(0); } #end update_ignore if ($ubb eq 'update_buddy') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_pm.cgi"); &pm_update_list('buddy'); exit(0); } #end update_buddy if ($ubb eq 'get_ip') { &RequireCode("$vars_config{CGIPath}/ubb_get_topic.cgi"); &get_ip; exit(0); } #end get_ip if ($ubb eq 'delete_topic') { &RequireCode("$vars_config{CGIPath}/ubb_topic_maint.cgi"); &delete_topic; exit(0); } #end delete_topic if (($ubb eq 'close_topic') || ($ubb eq 'open_topic')) { &RequireCode("$vars_config{CGIPath}/ubb_topic_maint.cgi"); &topic_open_close; exit(0); } #end close_topic/open_topic if ($ubb eq 'next_topic') { &RequireCode("$vars_config{CGIPath}/ubb_get_topic.cgi"); &next_topic; exit(0); } #end next_topic if (($ubb eq 'transfer') || ($ubb eq 'transfer_topic')) { &RequireCode("$vars_config{CGIPath}/ubb_topic_maint.cgi"); &transfer_topic; exit(0); } #end transfer if ($ubb eq 'edit_post') { &RequireCode("$vars_config{CGIPath}/ubb_edit_post.cgi"); &edit_post; exit(0); } #end edit_post if ($ubb eq 'submit_edit') { &GetOrPost("POST"); &RequireCode("$vars_config{CGIPath}/ubb_edit_post.cgi"); &submit_edit; exit(0); } #end submit_edit if ($ubb eq 'get_daily') { &RequireCode("$vars_config{CGIPath}/ubb_whos_online.cgi"); &WriteUserSession("$vars_wordlets_mods{whos_online_checking} $vars_wordlets_mods{whos_online_daily_topics}", $user_number, $invisible_pref); &RequireCode("$vars_config{CGIPath}/ubb_search.cgi"); &get_daily; exit(0); } #end get_daily unless($vars_search{AllowSearch} ne "TRUE") { if ($ubb eq 'search') { &RequireCode("$vars_config{CGIPath}/ubb_whos_online.cgi"); &WriteUserSession("$vars_wordlets_mods{whos_online_searching}", $user_number, $invisible_pref); &RequireCode("$vars_config{CGIPath}/ubb_search.cgi"); &search; exit(0); } #end search if ($ubb eq 'do_search') { &GetOrPost("POST") unless exists $in{StartPoint}; &RequireCode("$vars_config{CGIPath}/ubb_search.cgi"); if (($vars_search{IndexMethod} eq 'PERFORUM') && ($in{search_forum} eq 'ALL')) { &do_search_2; } else { &do_search; } exit(0); } #end do_search } #end check for search disabled if ($ubb eq 'send_topic') { &GetOrPost("POST") if $in{send_it}; &RequireCode("$vars_config{CGIPath}/ubb_friend.cgi"); &send_topic; exit(0); } #end send_topic if ($ubb eq 'faq') { &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &faq; exit(0); } #end faq if ($ubb eq 'ubb_code_page') { &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &ubb_code_page; exit(0); } #end ubb_code_page if ($ubb eq 'lost_password') { &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &lost_password; exit(0); } #end lost_password if ($ubb eq 'find_lost') { &GetOrPost("POST") unless $in{cp} eq "cp"; &RequireCode("$vars_config{CGIPath}/ubb_lib_misc.cgi"); &find_lost; exit(0); } #end find_lost # default error-- obviously they do not know where they are going &StandardHTML("$vars_wordlets_err{dead_end}"); exit(0); # comply with SafePerl