📄 cgi3.htm
字号:
<html><!-- #BeginTemplate "/Templates/index.dwt" --><head><meta http-equiv=Content-Type content="text/html; charset=gb_2312-80"><title>ChinaPerl</title>
<LINK rel=stylesheet href=mystyle.css type=text/css>
</head><body>
<table border=0 cellspacing=0 bgcolor=#80FFFF width=100%>
<tr>
<td align=left rowspan=2 width=150>
<div align="center"><img src=image/perl.gif height=85 width="85"></div>
</td>
<td align=center><img src=image/perl.gif height=85 width="85"></td>
</tr><tr>
<td colspan=2 align=center> </td>
</tr></table>
<table border=0 width=100% height=400 cellspacing=0 cellpadding=0>
<tr>
<td width=20% valign=top bgcolor="#dddddd">
<table border=0 width=100% cellpadding=0><tr><td width=5%></td>
<td width=95%>
<p align=center>Perl 5教程<br>
<a target=_blank href=http://flamephoenix.126.com>by flamephoenix</a><a href="http://perl.yesky.net"><br>
<font color="red">修订 by RNY<br>
</font></a>2000-08-30</p>
<p align=center><a href="index.htm">目录</a></p>
<p align=center>第一部分 Perl语言</p>
<p><a href=perl1.htm>第一章 概述</a></p>
<p><a href=perl2.htm>第二章 简单变量</a></p>
<p><a href=perl3.htm>第三章 操作符</a></p>
<p><a href=perl4.htm>第四章 列表和数组变量</a></p>
<p><a href=perl5.htm>第五章 文件读写</a></p>
<p><a href=perl6.htm>第六章 模式匹配</a></p>
<p><a href=perl7.htm>第七章 控制结构</a></p>
<p><a href=perl8.htm>第八章 子程序</a></p>
<p><a href=perl9.htm>第九章 关联数组(哈希表)</a></p>
<p><a href=perl10.htm>第十章 格式化输出</a></p>
<p><a href=perl11.htm>第十一章 文件系统</a></p>
<p><a href=perl12.htm>第十二章 引用(指针)</a></p>
<p><a href=perl13.htm>第十三章 面向对象编程</a></p>
<p><a href=perl14.htm>第十四章 包和模块</a></p>
<p><a href=func.htm>附录一 函数集</a></p>
<p align=center>第二部分 Perl的CGI应用</p>
<p><a href=cgi1.htm>第一章 cgilib例</a></p>
<p><a href=cgi2.htm>第二章 动态创建图像</a></p>
<p><a href=cgi3.htm>第三章 计数器的编写方法</a></p>
<p><a href=cgi4.htm>第四章 Web Server设置</a></p>
第五章、...<br></td></tr></table></td>
<td width=80% valign=top>
<div align="center"></div>
<table border=0 width=100% cellpadding=0>
<tr bgcolor="#00FF80">
<td colspan="2">
<div align="center"> Perl教程 | <a href="perl5manual.zip">下载全文</a>
| <a target=_blank href=http://www.turbolinux.com.cn/cgi-bin/linux/wwwthreads.pl?action=list&Board=perl>Perl论坛</a>
| <a href="http://perl.yesky.net">推荐站点</a> | 关于我们 </div>
</td>
</tr>
<tr>
<td colspan="2"><!-- #BeginEditable "body" -->
<p align=center>第三章 计数器的编写方法(未定稿)</p>
<p align=center><a target=_blank href=http://flamephoenix.126.com>by
flamephoenix</a></p>
<a href=#1>一、记录(log)文件</a><br>
<a href=#1.1>1、grep</a><br>
<a href=#1.2>2、page-stats</a><br>
<a href=#1.3>3、wusage</a><br>
<a href=#2>二、创建自己的计数器</a><br>
<a href=#2.1>1、使用DBM文件</a><br>
<a href=#2.2>2、文本文件</a><br>
<a href=#2.3>3、文件锁定</a><br>
<a href=#2.4>4、输出计数结果</a><br>
<a href=#2.5>5、www Homepage Access Counter</a><br>
<a href=#2.6>6、使用GD图形库</a><br>
<br>
<br>
计数器(Access Counter)可以记录网页被访问的次数,在万维网上的使用十分普遍,其编写方法很多,从简单的SSI命令到用CGI程序生成内嵌图像等。计数器除了记录点击次数外,还可以记录访问者的IP、OS、浏览器类型等内容,使你对自己网站的访问情况有个全面的了解,本章主要介绍点击次数的统计和显示方法。<br>
<br>
<a name=1></a>一、记录(log)文件<br>
<a name=1.1>1、grep</a><br>
对于Web服务器而言,都有记录文件记录着详细的访问信息,其名称通常为access_log,下面是一个例子:<br>
<blockquote>01: dialup-9.austin.io.com - - [02/Oct/1995:20:18:05 -0500]
"GET /phoenix/ HTTP/1.0" 200 2330<br>
02: crossnet.org - - [08/Oct/1995:19:56:45 -0500] "HEAD / HTTP/1.0"
200 0<br>
03: dialup-2.austin.io.com - - [09/Oct/1995:07:54:56 -0500] "GET
/leading-rein/orders HTTP/1.0" 401 -<br>
04: onramp1-9.onr.com - - [10/Oct/1995:11:11:40 -0500] "GET / HTTP/1.0"
200 1529<br>
05: onramp1-9.onr.com - - [10/Oct/1995:11:11:43 -0500] "GET /accn.jpg
HTTP/1.0" 200 20342<br>
06: onramp1-9.onr.com - - [10/Oct/1995:11:11:46 -0500] "GET /home.gif
HTTP/1.0" 200 1331<br>
07: dialup-3.austin.io.com - - [12/Oct/1995:08:04:27 -0500] "GET
/cgi-bin/env.cgi?<br>
08: SavedName=+&First+Name=Eric&Last+Name=Herrmann&Street=&City=&State=&<br>
09: zip=&Phone+Number=%28999%29+999-9999+&Email+Address=&<br>
10: simple=+Submit+Registration+ HTTP/1.0" 200 1261<br>
11: dialup-20.austin.io.com - - [14/Oct/1995:16:40:04 -0500] "GET
/leading-rein/index.cgi?unique_id=9658-199.170.89.58-813706781 HTTP/1.0"
200 1109</blockquote>
注;当主页在srm.conf中被命名为welcome.html、index.cgi、index.shtml等时,对其的访问记录,可能只含有目录名而不包含该文件名。<br>
我们可以用UNIX命令grep来统计主页被访问的次数,grep命令通常输出每一行匹配结果,但可以加上参数-c以输出匹配行的数目,grep详见UNIX帮助。下面是一个简单的例子grep.cgi:<br>
<blockquote>1: #!/usr/local/bin/perl<br>
2: print "content-type: text/html\n\n";<br>
3: $num = `grep -c 'GET / HTTP' /your-server-root/logs/access_log`
;<br>
4: $num += `grep -c 'GET /index.shtml' /your-server-root/logs/access_log`
;<br>
5: $num += `grep -c 'GET /index.html' /your-server-root /logs/access_log`
;<br>
6: print "$num\n";</blockquote>
现在就可以在主页中加上SSI指令来显示计数了,例如:<br>
<blockquote>01: <html><br>
02: <head><title>grep test</title><br>
03: <body><br>
04: <hr noshade><br>
05: This page has been accessed<br>
06: <!--#exec cgi="grep1.cgi" --> times.<br>
07: <hr noshade><br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -