• 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.
  • Posts

    • Google Chrome finally lets you change the position of the address bar on Android by Aditya Tiwari Google is rolling out a small but useful update to Chrome. The update makes the address bar in the web browser more customizable and accessible. You can now place it at the top or bottom of the screen, as you prefer. The ability to change the position of the address bar in Google Chrome has started rolling out and will be available to all users over the coming weeks. You can long-press on the address bar and select the "Move address bar to bottom" option. Alternatively, you can also go to Settings > Address bar to customize it. "Depending on the size of your hand and your device, one address bar position may feel more comfortable than the other," the company said in a blog post. "We designed this update to give you the flexibility to choose your preferred location — so you can browse with more ease." The address bar is where you can type website names you want to visit. It's a crucial part of our browsing experience and also doubles as the search bar in Google Chrome. The browser's Android version has been around since 2012, and the address bar's top position has remained the default for most of its time. Over the years, Google has enhanced the address bar with additional features, such as the ability to automatically hide when scrolling up on a web page, thereby offering more screen real estate. A bottom-mounted address bar could be a better option for users with small hands or those who prefer to use their device with one hand. Interestingly, this is not the first time Chrome has had a bottom address bar, as Google briefly experimented with the feature in the past. The bottom address bar even made its way to Chrome for iOS, where you can long-press the address bar to toggle between the two options or change it in the settings. It's hard to digest that it took Google so long to add a simple feature. The defunct Windows Phone had this feature as far back as 2012, and Chrome's rival Safari added a Bottom layout option in 2021. Nonetheless, the latest update brings Chrome in line with other browsers that offer a bottom address bar on Android.
    • That's just my understanding of the courts situation with the law with of AI and when could be copyrighted. Found this article about how different area's of the world are handling copyrights - https://www.cooley.com/news/in...uts-varies-around-the-world AI seems to be a disruptive technology so far, like the internet was. Whenever a disruptive tech comes out, it takes a while on what societies accepts, adapts, rejects, and how it ultimately pans out.
    • remember you "dont own it"....... you own the device... you dont own the OS... (yes i find what they are doing ridiculous, just posting how they think)
    • These are interesting options. This is good news.
  • Recent Achievements

    • Week One Done
      DrRonSr earned a badge
      Week One Done
    • Week One Done
      Sharon dixon earned a badge
      Week One Done
    • Dedicated
      Parallax Abstraction earned a badge
      Dedicated
    • First Post
      956400 earned a badge
      First Post
    • Week One Done
      davidfegan earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      618
    2. 2
      ATLien_0
      228
    3. 3
      +FloatingFatMan
      169
    4. 4
      Michael Scrip
      166
    5. 5
      Som
      146
  • Tell a friend

    Love Neowin? Tell a friend!