#!/usr/bin/perl
##############################################################################
# Simple Search Version 1.0 #
# Copyright 1996 Matt Wright mattw@worldwidemart.com #
# Created 12/16/95 Last Modified 12/16/95 #
# Scripts Archive at: http://www.worldwidemart.com/scripts/ #
##############################################################################
# COPYRIGHT NOTICE #
# Copyright 1996 Matthew M. Wright All Rights Reserved. #
# #
# Simple Search may be used and modified free of charge by anyone so long as #
# this copyright notice and the comments above remain intact. By using this #
# code you agree to indemnify Matthew M. Wright from any liability that #
# might arise from it's use. #
# #
# Selling the code for this program without prior written consent is #
# expressly forbidden. In other words, please ask first before you try and #
# make money off of my program. #
# #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium. In all cases copyright and header must remain intact.#
##############################################################################
# Define Variables #
$basedir = '/website/htdocs/pattayamail/';
$baseurl = 'http://www.pattayamail.com/';
@files = ('*.html','*.htm','231','232','233','234','235','236','237','238','239');
@filesyear = ('240','241','242','243','244','245','246','247','248','249','250','251','252','253','254','255','256','257','258','259','260','261','262','263','264','265','266','267','268','269','270','271','272','273','274','275','276','277','278','279','280','281','282','283');
$title = "Search www.pattayamail.com";
$title_url = 'http://www.pattayamail.com/';
$search_url = 'http://www.pattayamail.com/search/search.html';
# Done #
##############################################################################
# Parse Form Search Information
&parse_form;
#Choose between months and whole year search
&choose;
print "Content-type: text/html\n\n";
print "\n
\n Results of Search\n \n";
print "\n \n Results of Search in $title
\n \n";
# Get Files To Search Through
&get_files;
# Search the files
&search;
# Print Results of Search
&return_html;
sub choose {
if ($FORM{'searchoption'} eq "month") { # tests if you want months only
@files;
} else { # unites array files with array filesyear
push (@files, @filesyear);
}
}
sub parse_form {
# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Split the name-value pairs
@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;
}
}
sub get_files {
chdir($basedir);
foreach $file (@files) {
$ls = `dir /B $file`;
# print "Files: $ls
\n";
# print "$file
\n";
@ls = split(/\n+/,$ls);
foreach $temp_file (@ls) {
# print "The File is $file
\n";
if (-d $file) {
# print "Directory Found $temp_file
\n";
$filename = "$file/$temp_file";
if (-T $filename) {
push(@FILES,$filename);
}
}
elsif (-T $temp_file) {
# print "Text File Found $temp_file
\n";
push(@FILES,$temp_file);
}
}
}
}
sub search {
@terms = split(/\s+/, $FORM{'terms'});
foreach $FILE (@FILES) {
# print "$FILE
\n";
open(FILE,"$FILE");
@LINES = ;
close(FILE);
$string = join(' ',@LINES);
$string =~ s/\n//g;
if ($FORM{'boolean'} eq 'AND') {
foreach $term (@terms) {
if ($FORM{'case'} eq 'Insensitive') {
if (!($string =~ /$term/i)) {
$include{$FILE} = 'no';
last;
}
else {
$include{$FILE} = 'yes';
}
}
elsif ($FORM{'case'} eq 'Sensitive') {
if (!($string =~ /$term/)) {
$include{$FILE} = 'no';
last;
}
else {
$include{$FILE} = 'yes';
}
}
}
}
elsif ($FORM{'boolean'} eq 'OR') {
foreach $term (@terms) {
if ($FORM{'case'} eq 'Insensitive') {
if ($string =~ /$term/i) {
$include{$FILE} = 'yes';
last;
}
else {
$include{$FILE} = 'no';
}
}
elsif ($FORM{'case'} eq 'Sensitive') {
if ($string =~ /$term/) {
$include{$FILE} = 'yes';
last;
}
else {
$include{$FILE} = 'no';
}
}
}
}
if ($string =~ /(.*)<\/title>/i) {
$titles{$FILE} = "$1";
}
else {
$titles{$FILE} = "$FILE";
}
}
}
sub return_html {
print "Below are the results of your Search in no particular order:
\n";
print "
\n";
foreach $key (keys %include) {
if ($include{$key} eq 'yes') {
print "- $titles{$key}\n";
}
}
print "
\n";
print "
\n";
print "Search Information:\n";
print "
\n";
print "- Terms: ";
$i = 0;
foreach $term (@terms) {
print "$term";
$i++;
if (!($i == @terms)) {
print ", ";
}
}
print "\n";
print "
- Boolean Used: $FORM{'boolean'}\n";
print "
- Case $FORM{'case'}\n";
print "
\n";
print "
\n";
print "
\n";
print "\n\n";
}