#!/usr/bin/perl #################################################################### # Search Engine Redirector Version 1.0.2 6/6/2000 # Written By : Sammy Afifi sammy@technotrade.com # http://www.technotrade.com/ # #################################################################### # # This script is free of charge for any being. # #################################################################### $logging = 1; # Set to 1 or 0 (log keywords people use) $logfile = "logs.txt"; # Name of log file if above is set to 1. # On some servers, you may need to upload # a blank log file and chmod it to 777 # you may also need to use the full path # ex: $logfile = "/usr/home/blah/logs.txt"; # # If you don't want people to see the log file # then call it "logs.cgi" or put it in a hidden # directory &parse_form; $keyword = $FORM{'keywords'}; ($engine_name,$engine_url) = split(/\s*\|\s*/,$FORM{'engine'},2) if ($FORM{'engine'} ne ""); $keyword = &encode_string($keyword); if ($engine_name ne "") { print "Location: $engine_url" . $keyword . "\n\n"; } else { #print "Content-type: text/html\n\n"; # default if they do not select a search engine print "Location: http://www.clickey.com/search.cgi?keyword=$keyword\n\n"; } &log_it($engine_name,$FORM{'keywords'}) if ($logging); ################################ sub log_it { my($en,$kw) = @_; open(LF,">>$logfile"); print LF "$en|$kw\n"; close(LF); } ################################ sub encode_string { my($k) = @_; $k =~ s/ /\+/g; $k =~ s/\(/\%28/g; $k =~ s/\)/\%29/g; $k =~ s/\=/\%3D/g; $k =~ s/\&/\%26/g; $k =~ s/\"/\%22/g; $k =~ s/\?/\%3F/g; $k =~ s/\:/\%3A/g; $k =~ s/\//\%2F/g; $k =~ s/\\/\%5C/g; $k =~ s/\#/\%23/g; return($k); } ################################ sub parse_form { my($buffer,$pair,$value,@pairs,$name); read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if (length($buffer) < 4) { $buffer = $ENV{QUERY_STRING}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } } ################################