Simple PageViews Counter

Izaan's Avatar, Join Date: Oct 2007
Skilled contributor
I just created this for one of my client

Create A File Called counter.txt With CHMOD 777 In The Root Directory

$Visits = file_get_contents("counter.txt");
file_put_contents("counter.txt", $Visits++);

It works great like statcounter and other programs which also does not do much like unique ip tracking and other stuff.
0
varaprasadreddy's Avatar
Light Poster
dear izaan we can create counter.text easily but how to create "counter.txt With CHMOD 777"
and where can we use that script "i understood but i mean that please show me in a html page in a real scenario to download that script & then i can use in my page "
please help me boss.
waiting for your reply.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
counter.txt with CHMOD 777 means it should be read and writable by the PHP script.

In windows you need to set the needed permission using IIS and for Linux its simply changing the file permission.

I have not tested but it should work with chmod 666 as well as you do not need to execute anything.
0
PradeepKr's Avatar
Go4Expert Member
I really doubt it worked.

PHP Code:
$Visits++ 
increments after it has already written the old count in the file. Hence no increment. Number would remain same.

change it to
PHP Code:
++$Visits 
0
pein87's Avatar
Ambitious contributor
If you want it to keep track of IP's why not have it hold it as an array in a separate file.

PHP Code:
<?php

define
('COUNTER_FILE','counter.txt'); // define counter file
define('IP_FILE''ip_log.txt'); // define ip log

$ips file_get_contents(IP_FILE); // get file content as a variable

$visitCount file_get_contents(COUNTER_FILE); // get page views

$seperator " "// defaults to a space but change as you see fit

$ipRanges explode($seperator$ips); // transform into an array

$currentUsersIp $_SERVER['REMOTE_ADDR']; // get current IP


if (!in_array($currentUsersIp$ipRanges// check if the value is not in an array
{
 
// add it to array, save array it to a file and update file counter

$visitCount $visitCount 1// add one to the current visitor file
file_put_contents(COUNTER_FILE$visitCount); // write it to file
file_put_contents(IP_FILE$seperator $currentUsersIpFILE_APPEND); // add ip to ip log 
 
echo file_get_contents(COUNTER_FILE); // get visits including this new visit

}
else 
// is in array dont count it as a visit
{
// show current page views

echo $visitCount;
}

?>
Its not a complete solution but should work just fine if you want views to be unique based on ips.

Last edited by pein87; 16Sep2010 at 13:20..