Su Paull Art


See examples of my work   

See me and my work in the Forest of Dean

          
Gallery


   Gallery

 
           Information

   Information

 
           Contact me

   Contact
        or
   Mail Me

 
           Links

   Links

      
           Exhibs

   Exhibition

      
          











Page accessed #!/usr/bin/perl ############################################################################## # TextCounter Version 1.2 # # Copyright 1996 Matt Wright mattw@worldwidemart.com # # Created 3/14/96 Last Modified 5/10/96 # # Scripts Archive at: http://www.worldwidemart.com/scripts/ # ############################################################################## # COPYRIGHT NOTICE # # Copyright 1996 Matthew M. Wright All Rights Reserved. # # # # TextCounter 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 # Data Dir is the directory on your server that you wish to store the # count files in. Each page that has the counter on it will have it's own # file. The path is relative to the directory in which you have placed this # CGI script. $data_dir = "./"; # Valid-URI allows you to set up the counter to only work under specific # directories on your server. Include any of these directories as they # appear in a URI, into this array. More information on URI's available in # README. @valid_uri = ('/'); # Invalid-URI allows the owner of this script to set up the counter so # that certain portions of the web server that may be included in Valid-URI # cannot use the program. Leave this commented out if you wish not to # block out certain parts. # @invalid_uri = ('/', ); ############################################################################## # Set Options # Show Link allows you to add a link around the counter to point to # either instructions explaining to users how to set this up on the system # (useful if a system administrator wants to allow anyone to set things up # themselves). Setting it to 0 will make no link, otherwise put the URL # you want linked to the count here. # $show_link = "http://www.worldwidemart.com/scripts/"; $show_link = ""; # When Auto-Create is enabled, users will be able to auto-create the # count on their home pages by simply imbedding the Server Side Includes # call. Setting auto_create to 1 enables it, 0 will disable it. Only # users in @valid_uri will be allowed to auto create. $auto_create = "1"; # Show Date will show the date of when the count began if you set this # option to 1. It will appear in yor document as [Count] hits since [Date]. # Set this to 0 and it will simply return the [Count]. $show_date = "1"; # Lock Seconds will define the number of seconds the script should sit # and wait for the lock file to be gone before it will overwrite it if it # is still there. Every now and then a user will interrupt a page, causing # the script to halt and leave a lock file in place before the lock file # could be removed. This defines how long it waits. $lock_sec = "3"; # Padding Size define how many numbers will be shown as your count. For # instance, if you want your count to say 00065 and have the zeros padded # up to five digits, then set $pad_size = "5"; If the number goes higher # than the pad_size, don't worry, there just won't be any zero's tacked # onto the front. $pad_size = "5"; ############################################################################## # Print Content Type Header For Browser print "Content-type: text/html\n\n"; # Get the page location from the DOCUMENT_URI environment variable. $count_page = "$ENV{'DOCUMENT_URI'}"; # Chop off any trailing /'s if ($count_page =~ /\/$/) { chop($count_page); } $count_page =~ s/\//_/g; $lock_file = "$count_page\.lock"; # Check Valid-URI to make sure user can use this program. &check_uri; # Check to see if file is locked by program already in use. &check_lock($lock_sec); # If the file exists, get the date and count out of it. Otherwise, if # auto_create is allowed, create a new account. If neither of these are # true, return an error. if (-e "$data_dir$count_page") { open(COUNT,"$data_dir$count_page"); $line = ; chop($line) if $line =~ /\n$/; close(COUNT); ($date,$count) = split(/\|\|/,$line); } elsif ($auto_create == 1) { &create; } else { &error('page_not_found'); } # Increment Count. $count++; $print_count = $count; # Get Count Length for use in padding. $count_length = length($count); # Pad the number if it is smaller than $pad_size. #for ($i = $pad_size;$i > $count_length;$i--) { # $print_count = "0$print_count"; #} # Print the Count, Link and Date depending on what user has specified # they wish to print. if ($show_date == 1) { if ($show_link =~ /http:\/\//) { print "$print_count times since $date"; } else { print "$print_count times since $date"; } } else { if ($show_link =~ /http:\/\//) { print "$print_count"; } else { print "$print_count"; } } # Open the count file and write the new count that has been incremented. open(COUNT,">$data_dir$count_page") || &error('could_not_increment'); print COUNT "$date\|\|$count"; close(COUNT); # Remove Lock File for next time script is run on that HTML page. &clean_up; sub check_uri { $uri_check = "0"; foreach $uri (@valid_uri) { if ($ENV{'DOCUMENT_URI'} =~ /$uri/) { $uri_check = "1"; last; } } foreach $uri (@invalid_uri) { if ($ENV{'DOCUMENT_URI'} =~ /$uri/) { $uri_check = "0"; last; } } if ($uri_check == 0) { &error('bad_uri'); } } sub create { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); @months = ("January","February","March","April","May","June","July", "August","September","October","November","December"); $year += 1900; $date = "@months[$mon] $mday, $year"; $count = "0"; open(COUNT,">$data_dir$count_page") || &error('count_not_created'); print COUNT "$date\|\|$count"; close(COUNT); } sub error { $error = shift(@_); if ($error eq 'page_not_found') { print "[TextCounter Fatal Error: This Page Not Found\; Auto-Create Option Disabled]"; } elsif ($error eq 'bad_uri') { print "[TextCounter Fatal Error: This Page Not In Valid URI]"; } elsif ($error eq 'count_not_created') { print "[TextCounter Fatal Error: Could Not Write to File $datadir$count_page]"; } elsif ($error eq 'could_not_increment') { print "[TextCounter Fatal Error: Could Not Increment Counter]"; } exit; } sub check_lock { $time = $_[0]; for ($i = 1;$i <= $time; $i++) { if (-e "$data_dir$lock_file") { sleep 1; } else { open(LOCK,">$data_dir$lock_file"); print LOCK "0"; close(LOCK); last; } } } sub clean_up { unlink("$data_dir$lock_file"); } .

Created with 
IBM's Home Page Builder


Linux - dare to be different

      Graphic FX      
The GIMP
The Gimp


Now even renders in difficult to please IE
Mozilla   Netscape   Opera   IE


on a Linux operating system

Vive la difference


Valid HTML 4.01!