Is there a simple script or piece of code I can add to my page to keep a log of every visitor, the date and time they hit the page and IP address? And what would be the bes
The simplest piece of code to add to your page is no code at all. So might I suggest "something else"? Try using your webserver's built-in request logging facility instead of writing some custom PHP code.
Apache and many other webservers can produce logs in the Common Log Format (CLF) and there are many tools available to analyse such logs and draw pretty graphs for you (Webalizer, Awstats etc). A CLF log line looks like this which gives you all the information you asked for and more:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
See the appropriate bit of documentation for your webserver for how to configure logging and give it a whirl:
here is my little script to log ip addresses dont forget to add the below after the /HEAD tag also note to make this work it must be a PHP not HTML
<?php include ('log-ip.php') ?>
where ever you want it called from
"log-ip.php"
<?php
$iplogfile = 'logs/ip-address-mainsite.html';
$ipaddress = $_SERVER['REMOTE_ADDR'];
$webpage = $_SERVER['SCRIPT_NAME'];
$timestamp = date('d/m/Y h:i:s');
$browser = $_SERVER['HTTP_USER_AGENT'];
$fp = fopen($iplogfile, 'a+');
chmod($iplogfile, 0777);
fwrite($fp, '['.$timestamp.']: '.$ipaddress.' '.$webpage.' '.$browser. "\n<br><br>");
fclose($fp);
?>
and the resault is a nice web HTML log file logs/ip-address-mainsite.html
<!DOCTYPE html><!-- HTML5 -->
<head>
<body bgcolor="#000000">
<title>NZ Quakes - Main Web Site Log</title>
</head>
<body>
<font color="#7FFF00">
<center>NZ Quakes - Main Web Site Log</center>
<font color="gold">
<br><center>
[01/04/2017 08:25:21]: 124.197.9.181 /index.php Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
<br><br>
below is a picture of what it looks like.
what do you think about this i think its clean and simple sort of.
$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
file_put_contents('visitors.log', $line . PHP_EOL, FILE_APPEND);
Consider also logging $_SERVER['REQUEST_URI']
or other interesting information, possibly in a more standard format as outlined by @Day.
Most comprehensive - Apache's access log: Log Files -> Access Log @ httpd.apache.org
<?php
// include this piece of code in every page call
// write in database row
$log = array('time' => time(), 'ip' => $_SERVER['REMOTE_ADDR'], 'url' => $_SERVER['REQUEST_URI']);
?>