#!/usr/bin/perl # handle generator @vowels = ("a", "e", "i", "o", "u"); @consonants = ("b","c","d","f","g","h","j","k","l","m","n","p","qu","r","s","t","v","w","x","y","z"); @finalcons = ("b","c","d","f","g","k","l","m","n","p","r","s","t","v","z"); @endingletters = ("b","d","f","g","k","l","m","n","p","t","x","z"); @shortstarts = ("b","c","d","f","g","h","j","k","l","m","n","p","qu","r","s","t","v","w","x","y","z","tr","gr","fr","syn","st","str","ed","am","cyb","ven","gut","ch","chr","cr","sn","sh","bl","vis","dr","hor","wr","war","pl","an","ad","in","int","er","il","ill","em","ej","op"); @shortends = ("b","d","f","g","k","l","m","n","p","t","x","z","tor","ger","rad","la","gam","tal","nce","st","rd","rk","nk","ska","ski","ve","cket","ller","ma","lla","mo","pop","ce","pe","man","nic","ne","rib","th","ster","le","de","be"); @prefixes = ( "bio","biog","dr","bah","hor","war","play","pl","oth","an","ad","in","int","tit","circum","com","de","dis","ex","in","inter","mis","post","re","sub","trans","un","cal","ca","cap","cam","clo","cat","club","co","cla","cle","con","corn","cu","qua","curr","key","que","sha","shed","she","su","sur","che","la","le","law","limb","lim","lea","lemm","lin","long","lon","log","lof","li","lu","ma","maid","mar","mat","maw","me","meal","mea","men","me","mid","mil","min","minc","mind","mire","mir","mish","mash","mock","mo","most","much","mur","gn","gnash","gnar","gnarl","kn","nym","nymph","num","nos","neu","nigh","p","per","pen","pl","pre","port","pro","pur","pist","post","r","ray","rat","wr","run","s","self","sen","ser","so","sw","st","sh","str","squ","sv","syl","t","tr","ch","tem","try","tri","toil","th","thr","v","w","wh","way","wel","win","won","weed","wid","wan","z","x","b","br","bl","bolt","d","dr","den","ben","xeno","die","din","job","dye","diz","jea","f","fac","far","fee","fit","fay","pho","frond","found","fore","for","fal","fif","g","gab","gam","giv","glad","gui","guid","god","go","grip","great","h","hal","han","hand","har","hare","her","his","high","hoa","hue","hug","hub","helm","hir","hunt","hor","i","im","in","imp","inn","inun","ill","if","inqu","eng","ech","ung"); @suffixes = ( "tor","ger","rad","la","pist","ver","bot","hog","rk","ard","es","rst","gam","ance","nk","tal","ska","ski","cket","ller","op","tas","ce","sm","man","nic","rib","ck","shit","del","th","rsh","ma","cock","able","ance","ence","ible","ate","ful","ity","less","ly","ment","ness","tion","ion","sion","cline","cal","cool","col","co","com","blot","clad","con","lud","love","loud","lik","lic","lice","low","lie","lay","larg","large","late","lism","mon","mel","ma","mea","mio","mind","mo","men","mince","mark","mov","mit","main","mock","mem","maim","mein","mother","no","nough","nect","nege","night","nite","nee","nap","nip","norm","meu","neer","neigh","nine","noon","part","po","ppear","ped","pare","pin","ply","pub","pip","pop","point","pose","pport","pon","pod","prin","perk","preme","ploy","plot","pute","pose","pooh","pate","press","rea","rise","rith","rol","range","rec","rage","re","remp","riz","rate","rath","rough","cept","side","sid","sun","sume","scent","self","cite","scend","sur","slate","ceive","sung","safe","sist","six","sex","sil","se","spry","spy","spun","spunky","spor","spake","spic","spin","span","spick","spring","stand","step","chine","chi","ship","tide","try","two","tin","ton","ten","tate","torn","thur","ver","var","way","work","ward","worn","worth","win","ware","whip","wave","wate","bout","boot","break","bed","bind","bear","bar","back","bro","bud","bard","bine","bade","bag","bove","bound","brish","bulk","blot","duct","dult","dolt","day","down","do","dout","dorn","dith","duce","del","deal","digm","date","tho","thin","thout","thy","fry","fire","pan","gay","gab","god","gift","ger","gor","good","goor","gar","girk","hand","han","have","hive","hish","hanz","ill","ide"); @firsts; @middles; @lasts; $prefixlen = $#prefixes; $suffixlen = $#suffixes; $shortstartslen = $#shortstarts; $shortendslen = $#shortends; $conslen = $#consonants; #srand( time() ^ ($$ + ($$ << 15)) ); #fill the arrays #short words first. for ($i = 0; $i < 16; $i++){ $randstarts = int(rand $shortstartslen); $randends = int(rand $shortendslen); $randvowel = int(rand 5); $randcons = int(rand $conslen); $v = int(rand 1); $firsts[$i] = $shortstarts[$randstarts]; if ($v eq 0){ $temp = $vowels[$randvowel]; }else{ $temp = $vowels[$randvowel]; $temp2 = $consonants[$randcons]; $temp3 = $vowels[$randvowel]; $temp = $temp . $temp2 . $temp3; } $middles[$i] = $temp; $lasts[$i] = $shortends[$randends]; } #now the long words. for ($i = 16; $i < 32; $i++){ $randstarts = int(rand $prefixlen); $randends = int(rand $suffixlen); $randvowel = int(rand 5); $randcons = int(rand $conslen); $v = int(rand 1); $firsts[$i] = $prefixes[$randstarts]; if ($v eq 0){ $temp = $vowels[$randvowel]; }else{ $temp = $vowels[$randvowel]; $temp2 = $consonants[$randcons]; $temp3 = $vowels[$randvowel]; $temp = $temp . $temp2 . $temp3; } $middles[$i] = $temp; $lasts[$i] = $suffixes[$randends]; } #print input to a log for phun.--- # GATHER USER INFO FOR LOGS $ip = $ENV{'REMOTE_ADDR'}; $time = "/bin/date"; $date = `$time +"%b %d %Y %T"`; chop($date); open(LOG, ">>log.txt"); print(LOG "-->",$ip," :: ",$date," :: ",$data,"\n"); close(LOG); # start of HTML ------------------------------------------------------------ print "Content-type: text/html\n\n"; print " Name Generator "; open (FILE,"../../body.txt") or print "uhoh."; local $/; $includedhtml=; close(FILE); print $includedhtml; print "
"; open (FILE,"../../navigation.txt") or print "uhoh."; local $/; $includedhtml=; close(FILE); print $includedhtml; print "

Name Generator

32 original online handles.  Refresh for 32 more.

"; #----------------------------------------------------------- for ($i=0; $i<32; $i++){ print @firsts[$i]; print @middles[$i]; print @lasts[$i]; print "
"; if (($i eq 7) | ($i eq 15) | ($i eq 23)){ print "
"; } } print "
"; open (FILE,"../../footer.txt") or print "uhoh."; local $/; $includedhtml=; close(FILE); print $includedhtml; print "
"; sub ReadParse { local (*in) = @_ if @_; local ($i, $key, $val); # Read in text if (&MethGet) { $in = $ENV{'QUERY_STRING'}; } elsif (&MethPost) { read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); } @in = split(/[&;]/,$in); foreach $i (0 .. $#in) { # Convert plus's to spaces $in[$i] =~ s/\+/ /g; # Split into key and value. ($key, $val) = split(/=/,$in[$i],2); # splits on the first =. # Convert %XX from hex numbers to alphanumeric $key =~ s/%(..)/pack("c",hex($1))/ge; $val =~ s/%(..)/pack("c",hex($1))/ge; # Associate key and value $in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator $in{$key} .= $val; # Get rid of any weird characters. $in{$key} =~ s/\*|\$|\<|\>|\#|\%//gi; } return scalar(@in); } sub MethGet { return ($ENV{'REQUEST_METHOD'} eq "GET"); } sub MethPost { return ($ENV{'REQUEST_METHOD'} eq "POST"); }