Is it possible to do a server-side include such as the following:
<!-- #echo var="LAST_MODIFIED" -->I've tried it numerous ways and failed every time -- so I figured it was time for a definitive answer. I can certainly live without them but they would be nice to have.
This is done with a server side include that executes a program. To see
this example in action try index.html.
Here is an example of how to use scripts as server side includes. This
is not a CGI/1.1 program,
but something similar could be done with CGI/1.1. Assuming that the
program "counter.cgi" is in the same
directory as "foo.html" put something like:
File=foo.html
Includes=!counter.cgi
in your index.wn file.
Then put:
<!-- #include -->
on a line with no leading whitespace in the file foo.html.
The program counter.cgi gives the current count of accesses
to this page and also prints the last-modified date. It should be easy
to modify for your needs.
There are a couple of permissions issues. The user id under which the
server runs (e.g. "nobody") must have permission to execute
counter.cgi and to read and write the file
/tmp/wncount.
counter.cgiHere is the perl program:
#!/usr/bin/perl
require "stat.pl";
require "ctime.pl";
# This perl program counts accesses to a file foo.html and prints
# the last modified date for that file. Set the variable $file
# to the complete path of the file whose accesses you want to count.
# $countfile is a file which will contain the current count. The complete
# filename must be given for it too. A careful version of this program
# would do file locking since multiple processes might be trying to
# update $countfile simultaneously. Note that the WN user id (usually
# "nobody") must have write permission for this file.
$countfile = "/tmp/wncount";
$file = "$ENV{WN_DIR_PATH}/index.html";
&Stat( $file);
if (! -e $countfile)
{
open(COUNT, ">$countfile") || die "Cannot open file: $! for writing";
print COUNT "0";
close(COUNT);
}
open( COUNT, "<$countfile" ) || die "Can't open file: $! for reading";
$count = ;
close( COUNT);
$count++;
print "\n";
print " You are viewer ", $count, " to see this page.\n";
print "
\n";
print "\n";
print " It was last modified ", &ctime($st_mtime), "\n";
print "
\n";
open( COUNT, ">$countfile" ) || die "Can't open file: $! for writing";
print COUNT $count, "\n";
close (COUNT);