TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TCLUG:1872] Is this hard to do?



I just tried your script, but I can't get it to work. netscape gives me
the same error of internal server error. I ran "perl script.pl" where perl
was your script and it said:

syntax error at /home/httpd/cgi-bin/script.pl line 14, near "printf"
Execution of /home/httpd/cgi-bin/script.pl aborted due to compilation
errors. 

Line 14 is  printf "Content-type: image/gif\n\n";

Any ideas?

Thanks




Ben Luey
lueyb@carleton.edu
ICQ: 19144397

On Wed, 21 Oct 1998 UserCx@aol.com wrote:

> In a message dated 98-10-21 00:29:54 EDT, you write:
> 
> << There are two related things I'd like to setup on my linux box. One is a
>  script (cgi?) that will show a random gif from a list on my web page. I
>  downloaded a chi script that did this from linux banners page, but it
>  doesn't work, and I don't know how to debug it. (netscape just gives me
>  the error). I can send the cgi script if someone wants.
>  
>  The other is to have my e-mail signature show a random quote from a list
>  each time I send an e-mail. I don't know how to do this, except that it is
>  the same concept as with the web/cgi script. >>
> 
> Here is a script that will show up a random image from a list.
> 
> Set up imagedir which should contain all the gif files for your image banners.
> It should only have the image files and nothing else. Right now it can only
> do gifs, but you can change it to do jpegs on the fly or I can help you change
> it
> if you like.
> 
> Set up the default image just in case something breaks this will show up.
> And change /usr/bin/perl to wherever your perl actual resides.
> 
> If you like I can take a look at the script that you already have and see what
> is wrong with it.
> 
> Point your browser to a few "fortune cookies" on linux at
> http://www.stip.fr/lfce.html.
> 
> The second problem is to do with which mail program you use. One easy way
> to do this is to write a wrapper for your mail program which first creates a 
> .signature file using a random quote and then starts your mail program.
> 
> But then your signature remains the same as long as you do not exit and
> restart.
> I am not familiar with pine/elm but they might let you create signature files
> dynamically.
> 
> Here is another idea which I am not sure is possible but might be interesting.
> Write a monitor program that monitors if the .signature file is opened.
> Each time it notices an open on the signature file it updates
> the signature file with something new. 
> 
> --
> sandipan
> 
> ---- Cut After this line.  --
> #!/usr/bin/perl
> 
> #all images in the image directory.
> $imagedir="/usr/local/www/data/banners";
> $defaultimage="/usr/local/www/data/linux.gif";
> 
> sub show_image # filename
> {
> 	my($file) = @_;
> 
>      #send the mime type, can make it intelligent to see what kind of image
> file it is 
>      #and then set the appropriate mime type.
>     	printf "Content-type: image/gif\n\n";
> 
>       #Read the input file and print it to output.
> 	open( INP, "< $file" );
> 	while( read( INP, $buf, 1024 ) ) {
> 		print $buf;
> 	}
> 	close( INP );
> }
> 
> #Open the imagedir and read the list of files in there.
> if ( !opendir( DIR, $imagedir ) )
> {
> 	&show_image( $defaultimage );
> }
> else
> {
> 	#Read the image files and pick up a random one, This will only get the files
>       # in the imagedir.
> 	@filelist = grep { -f "$imagedir/$_" } readdir( DIR );
> 	closedir( DIR );
> 	if( $#filelist < 0 )
> 	{
> 		#didnot find any.
> 		&show_image( $defaultimage );
> 	}
> 	else
> 	{
> 		$loc = rand;		#this will call srand.
> 		$loc *= $#filelist;	#Use it to index into the list.
> 		$loc = int($loc);
> 		&show_image( "$imagedir/$filelist[$loc]" );
> 	}
> }
> 
> __END__
> 
> -- This is the end of the script. --
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tclug-list-unsubscribe@listserv.real-time.com
> For additional commands, e-mail: tclug-list-help@listserv.real-time.com
> Try our website: http://tclug.real-time.com
>