----- Original Message ----- 
From: "Bob" <[EMAIL PROTECTED]>

I used to use the following to log specific errors:
<snip>
But, this meant that sometimes there would only be a few errors shown, if 
the file had reached it's 20000 limit and deleted itself.

So I created a rolling road log of a 100. This allows me to view trends 
easier. I'm not sure how efficient this is, or whether it would be suitable 
for high volume?
<snip>

Has anyone got a better method, or can improve it?
Regards, Bob E.

------------------------------------
Hi Bob,

Here is some working example code for php version 4.x.x

It is much simpler and faster in php version 5.x.x because you can just add 
arrays together in a single php function.

As with all file access the file/folder permission's need to be set 
correctly.

Serialize is the safest way to story php objects as TRUE, FALSE, NULL and 
'value not set' are stored and retrieved correctly.

Let me know what version you are running and I will write a better example.

<html><head><title>www.domainname.com</title></head><body><?php

function display($array)
  {
  $text = serialize($array) . "\n";
  $text = str_replace("\n", "<br>\n", $text);
  echo($text);
  }

$this_request['REQUEST_DATE'] = gmdate('d/m/Y', 36000 + 
$_SERVER['REQUEST_TIME']);
$this_request['REQUEST_TIME'] = gmdate('h:i:s a', 36000 + 
$_SERVER['REQUEST_TIME']);
$this_request['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
$this_request['REMOTE_PORT'] = $_SERVER['REMOTE_PORT'];
$this_request['REMOTE_HOST'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$this_request['HTTP_REFERER'] = $_SERVER['HTTP_REFERER'];

$data[] = $this_request;

if(file_exists('data.txt'))
  {
  $temp = unserialize(@file_get_contents('data.txt'));
  foreach($temp as $this_request)
    {
    $data[] = $this_request;
    }
  }

if(isset($_GET['delete']))
  {
  $ip = $_GET['delete'];
  if($ip == '')
    {
    $ip = $_SERVER['REMOTE_ADDR'];
    }
  $total = count($data);
  for($count = 0; $count <= $total; $count++)
    {
    if($data[$count]['REMOTE_ADDR'] == $ip)
       {
       unset($data[$count]);
       }
    }
  $show = TRUE;
  }

@file_put_contents('data.txt', serialize($data));

if(isset($_GET['show']))
  {
  $show = TRUE;
  }

if($show)
  {?>

<table border="1">

<tr>
<th>Date</th>
<th>Time</th>
<th>IP</th>
<th>Port</th>
<th>Remote Host</th>
<th>Referer</th>
</tr>
<?php
  foreach($data as $this_request)
    {
    echo("\n<tr>\n");
    foreach($this_request as $key => $value)
      {
      echo('<td>');
      if($key == 'HTTP_REFERER')
        {
        echo('<a href="' . $value . '" target="_Blank">');
        }
      echo($value);
      if($key == 'HTTP_REFERER')
        {
        echo('</a>');
        }
      echo("</td>\n");
      }
    echo("</tr>\n");
    }
  echo("\n</table>\n");
  }

?> 


------------------------------------

Please remember to write your response BELOW the previous text. 

Community email addresses:
  Post message: php-list@yahoogroups.com
  Subscribe:    [EMAIL PROTECTED]
  Unsubscribe:  [EMAIL PROTECTED]
  List owner:   [EMAIL PROTECTED]

Shortcut URL to this page:
  http://groups.yahoo.com/group/php-listYahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/php-list/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/php-list/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to