|
|
|
| Title : |
A simple script to count and report hits and the last
modification time of an HTML page. Requires MySQL support
(other DBs should work too, except possibly mSQL). |
| Categories : |
HTTP, MySQL, PHP, Databases |
 Cary Collett |
| Date : |
May 13th 1998 |
| Grade : |
4 of 5 (graded 2 times) |
| Viewed : |
16054 |
| File : |
No file for this code example. |
| Images : |
No Images for this code example. |
|
| Search : |
More code by Cary Collett |
|
| Action : |
Grade This Code Example
|
|
| Tools : |
My Examples List |
|
|
|
|
|
|
<?php
/*
Pagestats v1.0
Copyright 1998 Cary Collett. Use it freely, distribute it freely, tell me
how great it is freely and send me any cool mods you come up with for it,
freely.
cary@ratatosk.org
Changes
1.1 Now using SCRIPT_FILENAME everywhere instead of SCRIPT_NAME. Using
SCRIPT_NAME could result in collisions if virtual hosts are being used.
I.e. hits for www.foo.com/index.html and www.bar.com/index.html would
both be collected for the same URI. Of course this makes the column
name URI a misnomer. Change it if it really bothers you. ;-)
*/
/*
A simple script to be included that reports hits, last modification
and when the hit counting started. You'll need MySQL support.
Though it should be easy to port this to any decent DBMS (mSQL
might be a little sticky becuase of it's severely limited
feature set; I don't use it anymore so I don't know for sure.)
This mysql table must exist in the database 'php' (or you can edit
stuff to suit you).
create table pagestats (
uri varchar(96) primary key,
hits bigint not null default 0,
since datetime
);
It defines several variables:
$hits = Number of hits counted
$since = full blown date & time since the counter started
$lastmod = full blown date & time of the last modification (ctime) of
the file
The following Unix epochs are set. Users can use these if they don't like
default format.
$sincesecs = Unix epoch of since
$modsecs = Unix epoch of lastmod
An example of usage:
1. Put this file somewhere in your PHP include path.
2. Stick something like this in your page:
<? include("pagestats.php3"); ?>
<? echo $hits . " hits since " . date('F d, Y',$sincesecs); ?>.
<p>
Last modified: <? echo $lastmod; ?>
<p>
*/
$link = mysql_pconnect('localhost','logger','');
mysql_select_db('php',$link);
$qs = "UPDATE pagestats SET hits=hits+1 WHERE uri = '$SCRIPT_FILENAME'";
$r = mysql_query($qs,$link);
if (mysql_affected_rows($link) < 1) {
/* oops, no row for this page, create one */
mysql_query("INSERT INTO pagestats VALUES ('$SCRIPT_FILENAME',1,SYSDATE())",
$link);
}
$res = mysql_query("SELECT hits, UNIX_TIMESTAMP(since) as since FROM pagestats
WHERE uri = '$SCRIPT_FILENAME'",$link);
$sincesecs = mysql_result($res,0,'since');
$modsecs = filectime($SCRIPT_FILENAME);
$hits = mysql_result($res,0,'hits') + 1;
/*
see the date() docs if you want to change this
The format 'l F d, Y h:i:s A' makes dates like this:
Friday May 08, 1998 04:22:08 PM
*/
$dateformat = 'l F d, Y h:i:s A';
$since = date($dateformat,$sincesecs);
$lastmod = date($dateformat,$modsecs);
?> |
|
| Identify and log search engine access (spiders, robots, etc.) to a page. Categories : HTTP, Environment Variables, PHP, MySQL, Databases | | | Simple pipe delimited file export program that downloads to a local machine Categories : PHP, Filesystem, Databases, MySQL, HTTP | | | bookmarker - PHP, PHPLIB, MySQL WWW based bookmark manager Categories : MySQL, PHP, MySQL, Complete Programs, Databases | | | The simple counter with use MySql and gd. Categories : MySQL, HTTP, Graphics, PHP, Databases | | | This program allows you to upload an ODBC ressource - i.e. an MS-Access database to a MySQL server. Categories : Databases, MySQL, Complete Programs, PHP, Databases | | | Function to check connection to MySQL and redirect to an error page if an error occurs Categories : MySQL, PHP, Debugging, Databases | | | PHP Object Example of the Perl DBI with MySQL Categories : PHP, PHP Classes, MySQL, Databases, Perl | | | AJAX Data Grid System using php and mysql. A complete login system with the ability to display data in a grid using ajax. Add , update and delete the records without reloading the page. Categories : PHP, AJAX, Databases, MySQL, Java Script | | | Visits-tracking Categories : PHP, Databases, MySQL, Errors and Logging, Functions | | | Finds the median in an array of numbers - Can be used with a MySql database column read into an array Categories : PHP, Arrays, Databases, MySQL | | | Simple function to return the number of days in a time span between 2 given dates. Categories : PHP, Date Time, MySQL, Databases | | | Solution to those 'tell-a-friend' type email issues Categories : PHP, Email, Databases, MySQL | | | PostGreSQL and MySQL 2 in 1 db Manager Categories : PHP, PHP Classes, Databases, PostgreSQL, MySQL | | | [PHP5] aDB PDO LIKE Database Abstraction. Switch easily from one db server to another, strong errors management, manage transactions, queries preparation and more. Categories : PHP, PHP Classes, Databases, MS SQL Server, MySQL | | | Paginator - a class that can help you to split MySQL database query result sets to pages. Categories : MySQL, Databases, HTML, PHP | |
|
|