1<?php 2/** 3 * Referrers for DokuWiki 4 * 5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 6 * @author Terence J. Grant<tjgrant@tatewake.com> 7 */ 8 9function re_beginsWith($str, $sub) 10{ 11 return (substr($str, 0, strlen($sub)) === $sub); 12} 13 14function re_log_referrers_new($refignore) 15{ 16 global $conf; 17 global $_SERVER; 18 19 $refhi = getenv("HTTP_REFERER"); 20 $ref = strtolower($refhi); 21 $a = 'http://'.$refignore; 22 $b = 'http://www.'.$refignore; 23 24 if (re_beginsWith($ref, $refignore) == false && re_beginsWith($ref, $a) == false && re_beginsWith($ref, $b) == false) { 25 if (strcmp($refhi, "") == 0) { 26 $refhi = "NULL"; 27 } else { 28 $refhi = "[[".$refhi."]]"; 29 } 30 31 $curdate = date("l"); 32 $curdatefile = $conf['datadir']."/wiki/referrers.txt"; 33 34 if (is_writable($curdatefile)) { 35 $datas = file($curdatefile); 36 $data = trim($datas[0]); 37 38 if (strcmp($data, "====== Referrers : $curdate ======") == 0) { 39 $fp = fopen($curdatefile, "a"); 40 } else { 41 $fp = fopen($curdatefile, "w"); 42 fwrite($fp, "====== Referrers : $curdate ======\n\n"); 43 fwrite($fp, "//If you find [[https://www.dokuwiki.org/plugin:referrers|Referrers for DokuWiki]] useful, please consider [[https://www.paypal.com/xclick/business=tjgrant%40tatewake.com&item_name=Referrers%20for%20DokuWiki%20Donation&no_shipping=1&no_note=1&tax=0¤cy_code=USD&lc=US|donating]].//\n"); 44 fwrite($fp, "^ hostname ^ ip address ^ referrer ^\n"); 45 } 46 47 $rh = getenv("REMOTE_ADDR"); 48 49 fwrite($fp, "| %%".gethostbyaddr($rh)."%% | "); 50 fwrite($fp, $rh); 51 52 $UA = ""; 53 54 if (isset($_SERVER['HTTP_USER_AGENT'])) { 55 $UA = $_SERVER['HTTP_USER_AGENT']; 56 } 57 58 if (re_beginsWith($UA, "Mozilla") == false && 59 re_beginsWith($UA, "Opera") == false) { 60 fwrite($fp, "((%%".$UA."%%)) "); 61 } 62 63 fwrite($fp, "| ".$refhi." |"); 64 fwrite($fp, "\n"); 65 66 fclose($fp); 67 } elseif (file_exists($curdatefile)) { 68 msg("For the Referrers plugin to work, please create the page :wiki:referrers.", -1); 69 } 70 } 71} 72