• 0

Help with a Stats Script


Question

Hey guys

So my friend made a stats script that works perfectly on his webpage. It's designed so that it doesn't need a database and runs off of 2 .txt files. I got the code from him and tried it on my site but I keep getting continous errors when I load any of the pages. I have pretty much no experience in PHP except for being able to tweak and stuff, no real coding knowledge.

Here are the two files that have the actual code, and also the file which I want to run all the codes together on.

Online.php

<?
$ip = $REMOTE_ADDR;
$time = time();
$minutes = 15;
$found = 0;
$users = 0;
$user  = "";

$tmpdata = $DOCUMENT_ROOT."/";

if (!is_file("$tmpdata/online.txt"))	
	{
	$s = fopen("$tmpdata/online.txt","we($s);
	chmod("$tmpdata/online.txt",0666

$f = fopen("$tmpdata/online.txt","r($f,2);

while (!feof($f))
	{
	$user[] = chop(fgets($f,65536));
	}

fseek($f,0,SEEK_SET);
ftruncate($f,0);

foreach ($user as $line)
	{
	list($savedip,$savedtime) = split("\|",$line);
	if ($savedip == $ip) {$savedtime = $time;$found = 1;}
	if ($time < $savedtime + ($minutes * 60)) 
		{
		fputs($f,"$savedip|$savedtime\n");
		$users = $users + 1;
		}
	}

if ($found == 0) 
	{
	fputs($f,"$ip|$time\n");
	$users = $users + 1;
	}

fclose ($f);
print " <b>People on:</b> $users
";

?> 

Stats.php

<?php
$counter = "stats.txt";

$today = getdate();
$month = $today[month];
$mday = $today[mday];
$year = $today[year];
$current_date = $mday . $month . $year;

$fp = fopen($counter, "a");
$line = $REMOTE_ADDR . "|" . $mday . $month . $year . "\n";
$size = strlen($line);
fputs($fp, $line, $size);
fclose($fp);

$contents = file($counter);

$total_hits = sizeof($contents);

$total_hosts = array();
for ($i=0;$i<sizeof($contents);$i++) {
	$entry = explode("|", $contents[$i]);
	array_push($total_hosts, $entry[0]);
}
$total_hosts_size = sizeof(array_unique($total_hosts));

$daily_hits = array();
for ($i=0;$i<sizeof($contents);$i++) {
	$entry = explode("|", $contents[$i]);
	if ($current_date == chop($entry[1])) {
		array_push($daily_hits, $entry[0]);
	}
}
$daily_hits_size = sizeof($daily_hits);

$daily_hosts = array();
for ($i=0;$i<sizeof($contents);$i++) {
	$entry = explode("|", $contents[$i]);
	if ($current_date == chop($entry[1])) {
		array_push($daily_hosts, $entry[0]);
	}
}
$daily_hosts_size = sizeof(array_unique($daily_hosts));

?>
<font face="verdana" size="1" color="#000000">
<? echo "
 <b>Page hits: </b> " . $total_hits . "<br>
 <b>Unique hits: </b> " . $total_hosts_size . "<br>
 <b>Page hits today: </b> " . $daily_hits_size . "<br>
 <b>Unique Hits today: </b> " . $daily_hosts_size;
?>

And finally,

Show.php

<?php 
 include"stats.php";
?>
<br>
<?php
 include"online.php";
?>

<b>Ip Address:</b> <?php echo $_SERVER['REMOTE_ADDR'] ?><br>

<?php
$endtime = microtime();
$endarray = explode(" ", +$endarray[0]);
$totaltime = $endtime - $starttime;
$totaltime = round($totaltime,5);
echo "<b>Loaded In:</b> $totaltime seconds";
?><br>
<?php
$browswer = "$HTTP_USER_AGENT";
$limitchar = substr($browswer,0,20);
print("<b>Your Browswer:</b> $limitchar)")
?><br>

The error I get is:

 Page hits:  15
 Unique hits: 1
 Page hits today: 3
 Unique Hits today: 1

Warning: fopen(/online.txt): failed to open stream: Permission denied in /home/th3n33ms/public_html/stats/online.php on line 13

Warning: fclose(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 14

Warning: chmod(): No such file or directory in /home/th3n33ms/public_html/stats/online.php on line 15

Warning: fopen($/online.txt): failed to open stream: No such file or directory in /home/th3n33ms/public_html/stats/online.php on line 18

Warning: flock(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 19

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

Warning: feof(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 21

Warning: fgets(): supplied argument is not a valid stream resource in /home/th3n33ms/public_html/stats/online.php on line 23

And the warning line 21 and 23 keeps going forever?

Any ideas? Thanks

Link to comment
https://www.neowin.net/forum/topic/459517-help-with-a-stats-script/
Share on other sites

3 answers to this question

Recommended Posts

  • 0

There is a PHP setting calling register_globals which basically allows you to use "superglobals" - really important variable - without defining them. With the setting turned off, you write

$somevariable = $_SERVER['REMOTE_ADDR'];

with it on, you write

$somevariable = $REMOTE_ADDR

His host has it turned on, yours doesn't. Ask him to convert superglobals into their full length equivalents, and it should be fine. I would do it now, but I'm short on time.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.