Skip to content

Commit

Permalink
Add user agent to 404.log entry (code provided by hiroron)
Browse files Browse the repository at this point in the history
  • Loading branch information
mystralkk committed Jan 23, 2017
1 parent 7053ac0 commit 77f9c55
Showing 1 changed file with 33 additions and 16 deletions.
49 changes: 33 additions & 16 deletions public_html/lib-common.php
Expand Up @@ -7658,36 +7658,53 @@ function COM_handle404($alternate_url = '')
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');

// Add log stuff
$url = COM_getCurrentURL();
if (isset($_USER['uid'])) {
$byUser = $_USER['uid'] . '@' . $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['SCRIPT_URI'])) {
$url = $_SERVER['SCRIPT_URI'];
} else {
if (empty($_SERVER['HTTPS']) || ($_SERVER['HTTPS'] === 'off')) {
$url = 'http';
} else {
$url = 'https';
}

$url .= '://' . @$_SERVER['HTTP_HOST'] . strip_tags($_SERVER['SCRIPT_URI']);
}

// Add log stuff
if (empty($_USER['uid'])) {
$byUser = 'anon@' . $_SERVER['REMOTE_ADDR'];
} else {
$byUser = $_USER['uid'] . '@' . $_SERVER['REMOTE_ADDR'];
}
$refUrl = $_SERVER['HTTP_REFERER'];
$timestamp = @strftime('%c');
$logEntry = "404 Error generated by $byUser for url: $url";
if (!empty($refUrl)) {
$logEntry .= " - Referring url: $refUrl";

$logEntry = "404 Error generated by {$byUser} for URL: {$url}";

// Add referer
if (!empty($_SERVER['HTTP_REFERER'])) {
$logEntry .= " - Referring URL: {$_SERVER['HTTP_REFERER']}";
}
$logEntry = str_replace(array('<?', '?>'), array('(@', '@)'), $logEntry);

$logfile = $_CONF['path_log'] . '404.log';
if ($file = fopen($logfile, 'a')) {
fputs($file, "$timestamp - $logEntry \n");
// Add user agent
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$logEntry .= ' - User agent: ' . $_SERVER['HTTP_USER_AGENT'];
}

$display = COM_startBlock($LANG_404[1]);
$display .= sprintf($LANG_404[2], $url);
// Write into log file
$logEntry = str_replace(array('<?', '?>'), array('(@', '@)'), $logEntry);
$logEntry = @strftime('%c') . ' - ' . $logEntry . PHP_EOL;
@file_put_contents($_CONF['path_log'] . '404.log', $logEntry, FILE_APPEND | LOCK_EX);

$display = COM_startBlock($LANG_404[1])
. sprintf($LANG_404[2], $url);

if ($alternate_url != '') {
$display .= sprintf($LANG_404[4], $alternate_url);
} else {
$display .= $LANG_404[3];
}

$display .= COM_endBlock();
$display = COM_createHTMLDocument($display, array('pagetitle' => $LANG_404[1]));

COM_output($display);
exit; // Do not want to go any further
}
Expand Down

0 comments on commit 77f9c55

Please sign in to comment.