[geeklog-hg] geeklog: log parameters for 404 errors & make filtering in 404.l...

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Thu Oct 1 15:41:58 EDT 2015


changeset 9626:36abc9942837
url:  http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/36abc9942837
user: Dirk Haun <dirk at haun-online.de>
date: Thu Oct 01 21:41:51 2015 +0200
description:
log parameters for 404 errors & make filtering in 404.log work like in error.log

diffstat:

 public_html/lib-common.php |  34 +++++++++++++++-------------------
 1 files changed, 15 insertions(+), 19 deletions(-)

diffs (66 lines):

diff -r 276ffb7db1bf -r 36abc9942837 public_html/lib-common.php
--- a/public_html/lib-common.php	Tue Sep 29 08:57:58 2015 +0200
+++ b/public_html/lib-common.php	Thu Oct 01 21:41:51 2015 +0200
@@ -8158,7 +8158,6 @@
 {
     global $_CONF, $_USER, $LANG_404;
 
-
     if (function_exists('CUSTOM_handle404')) {
         CUSTOM_handle404($alternate_url);
         exit;
@@ -8168,31 +8167,27 @@
     header('HTTP/1.1 404 Not Found');
     header('Status: 404 Not Found');
 
-    $display .= COM_startBlock($LANG_404[1]);
-    if (isset($_SERVER['SCRIPT_URI'])) {
-        $url = strip_tags($_SERVER['SCRIPT_URI']);
-    } else {
-        $request = $_SERVER['REQUEST_URI'];
-        $url = 'http://' . $_SERVER['HTTP_HOST'] . strip_tags($request);
-    }
-
     // Add log stuff
+    $url = COM_getCurrentURL();
     if (isset($_USER['uid'])) {
         $byuser = $_USER['uid'] . '@' . $_SERVER['REMOTE_ADDR'];
     } else {
         $byuser = 'anon@' . $_SERVER['REMOTE_ADDR'];
     }
     $refurl = $_SERVER['HTTP_REFERER'];
-    $remoteaddress = $_SERVER['REMOTE_ADDR'];
-    $timestamp = @strftime( '%c' );
-    $logentry = "404 Error generated by $byuser for url: $url - Referring url: $refurl";
+    $timestamp = @strftime('%c');
+    $logentry = "404 Error generated by $byuser for url: $url";
+    if (! empty($refurl)) {
+        $logentry .= " - Referring url: $refurl";
+    }
+    $logentry = str_replace(array('<?', '?>'), array('(@', '@)'), $logentry);
+
     $logfile = $_CONF['path_log'] . '404.log';
-    if (!$file = fopen($logfile, 'a')) {
-
-    } else {
-        fputs( $file, "$timestamp - $logentry \n" );
-    }
-
+    if ($file = fopen($logfile, 'a')) {
+        fputs($file, "$timestamp - $logentry \n");
+    }
+
+    $display = COM_startBlock($LANG_404[1]);
     $display .= sprintf($LANG_404[2], $url);
     if ($alternate_url != '') {
         $display .= sprintf($LANG_404[4], $alternate_url);
@@ -8200,7 +8195,8 @@
         $display .= $LANG_404[3];
     }
     $display .= COM_endBlock();
-    $display = COM_createHTMLDocument($display, array('pagetitle' => $LANG_404[1]));
+    $display = COM_createHTMLDocument($display,
+                                      array('pagetitle' => $LANG_404[1]));
 
     COM_output($display);
     exit; // Do not want to go any further



More information about the geeklog-cvs mailing list