#!/usr/bin/perl ##################################################################################### ## d.cgi -- David Hasbrouck ## Replicator 2000/Webscape Worldwide Replicator version 3.7.00 04/26/2000 ## http://www.replicator2000.com / http://www.webscapeworldwide.com ## Copyright (c) 1995 - 2000 Hasbrouck Enterprises. All rights reserved. ## Hasbrouck Enterprises, 2104 Greenway Ave, Shakopee, MN 55379, USA. ## Be sure you understand LICENSE AGREEMENT (license.txt) ##################################################################################### use CGI::Carp (fatalsToBrowser); use DBI; require "cgi-bin/replicator/db_func.cgi"; require "cgi-bin/replicator/data/config/masterconfig.cfg"; ## default id if none is found $default_id = "1000"; ## default webpage if none is found/passed $default_webpage = "index.htm"; $invalid_url = "http://www.wholly-water.com/missing.html"; if ($ENV{'QUERY_STRING'} ne '') { ($idnumber, $webpage) = split(/=/, $ENV{'QUERY_STRING'}, ,3); } elsif ($ENV{'PATH_INFO'} ne '') { ($trash, $idnumber, $webpage) = split(/\//, $ENV{'PATH_INFO'}, ,3); } elsif ($ENV{'DOCUMENT_URI'} ne '') { @DOC_SPLIT = split(/\//, $ENV{DOCUMENT_URI}); $nbr_dir = @DOC_SPLIT; $idnumber = $DOC_SPLIT[$nbr_dir - 2]; $webpage = $ENV{DOCUMENT_NAME}; } if ($idnumber eq '') { $idnumber = $default_id; } if ($webpage eq '') { $webpage = $default_webpage; } &SqlConnect; $match = &SqlFindRecord($idnumber); if ($match == 0) { print "Location: $invalid_url\n\n"; } # if ($match == 0) # { $match = &SqlFindRecord($default_id); } %FORM = %FOUND_RECORD; if($sqlConnect) { $dbh->disconnect(); } ### Disconnect from MySQL database # if ($FORM{status} ne "E") # { print "Location: $invalid_url\n\n"; } # dbmopen(%DB,$CONFIG{'userdb'},0400); # unless ($DB{$idnumber}) # { # $line = $DB{$default_id}; # } # else # { # $line = $DB{$idnumber}; # } # dbmclose(%DB); # # %FORM = &breakup_line($line); $webpage_to_display = "$CONFIG{'master_dir'}$webpage"; &display_webpage($webpage_to_display); exit; sub display_webpage { my ($filename) = @_; open(FILE,"$filename") or &cgierr("error in open display page for reading. unable to open display page file: $filename. Reason: $!"); @lines = ; close(FILE); print "Content-type: text/html\n\n"; foreach $line (@lines) { print &reformat_line($line); } } sub breakup_line { my ($input) = @_; my (%DATA); ($DATA{'intid'},$DATA{'fromid'},$DATA{'personalid'},$DATA{'sponsorid'},$DATA{'placementid'}, $DATA{'pagename'},$DATA{'password'},$DATA{'firstname'},$DATA{'middlename'},$DATA{'lastname'}, $DATA{'fullname'},$DATA{'address1'},$DATA{'address2'},$DATA{'city'},$DATA{'state'},$DATA{'zip'}, $DATA{'country'},$DATA{'county'},$DATA{'email'},$DATA{'companyname'},$DATA{'companytitle'}, $DATA{'homephone'},$DATA{'businessphone'},$DATA{'faxnumber'},$DATA{'createdate'}, $DATA{'lastupdate'},$DATA{'extra1'},$DATA{'extra2'},$DATA{'extra3'},$DATA{'extra4'}, $DATA{'extra5'},$DATA{'extra6'},$DATA{'extra7'},$DATA{'extra8'},$DATA{'extra9'},$DATA{'extra10'}, $DATA{'extra11'},$DATA{'extra12'},$DATA{'extra13'},$DATA{'extra14'},$DATA{'extra15'}, $DATA{'extra16'},$DATA{'extra17'},$DATA{'extra18'},$DATA{'extra19'},$DATA{'extra20'}, $DATA{'extra21'},$DATA{'extra22'},$DATA{'extra23'},$DATA{'extra24'},$DATA{'extra25'}, $DATA{'extra26'},$DATA{'extra27'},$DATA{'extra28'},$DATA{'extra29'},$DATA{'extra30'}, $DATA{'extra31'},$DATA{'extra32'},$DATA{'extra33'},$DATA{'extra34'},$DATA{'extra35'}, $DATA{'extra36'},$DATA{'extra37'},$DATA{'extra38'},$DATA{'extra39'},$DATA{'extra40'}) = split(/\|\|/, $input); return %DATA; } ###################################################### ### sub reformat_line ### ### Reformats line with users inputted data. ###################################################### sub reformat_line { my ($line) = @_; if ($line =~ /background\=/i) { if (!($line =~ /background\=\"http/i)) { $line =~ s/background\=\"/background\=\"$graphic_path/gi; } } if ($line =~ /src\=/i) { if (!($line =~ /src\=\"http/i)) { if (!($line =~ /src\=\"\[/i)) { $line =~ s/src\=\"/src\=\"$graphic_path/gi; } } } if ($line =~ /href\=/i) { if (!($line =~ /href\=\"http/i)) { if (!($line =~ /href\=\"mailto/i)) { if (!($line =~ /href\=\"java/i)) { if (!($line =~ /href\=\"\#/i)) { $line =~ s/href\=\"/href\=\"$href_path/gi; } } } } } if ($line =~ /\[/) { foreach $key (keys(%FORM)) { $line =~ s/\[$key\]/$FORM{$key}/gi; } foreach $key (keys(%CONFIG)) { $line =~ s/\[$key\]/$CONFIG{$key}/gi; } } if ($line =~ /\%5B/) { foreach $key (keys(%FORM)) { $line =~ s/\%5B$key\%5D/$FORM{$key}/gi; } foreach $key (keys(%CONFIG)) { $line =~ s/\%5B$key\%5D/$CONFIG{$key}/gi; } } return ($line); } sub cgierr { # -------------------------------------------------------- # Displays any errors and prints out FORM and ENVIRONMENT # information. Useful for debugging. local ($oldbar) = $|; $cfh = select (STDOUT); $| = 1; print "Content-type: text/plain\n\n"; $| = $oldbar; select ($cfh); $html_headers_printed = 1; print "
\nCGI Error: $!\n";
        print "Message: $_[0]\n\n";
        print "_________Form Variables __________\n";
        foreach $key (sort keys %in) {
                print "$key: \t$in{$key}\n";
        }

        print "\n_________Environment Variables__________\n";
        foreach $env (sort keys %ENV) {
                print "$env: \t$ENV{$env}\n";
        }
        print "\n
"; exit; }