Added link for domain on various list displays.
[clearscm.git] / maps / php / MAPS.php
index 72e1390..b718935 100755 (executable)
@@ -1,24 +1,24 @@
 <?php
 ////////////////////////////////////////////////////////////////////////////////
 //
-// File:       $RCSFile$
-// Revision:   $Revision: 1.1 $
-// Description:        Main PHP module to MAPS
-// Author:     Andrew@DeFaria.com
-// Created:    Fri Nov 29 14:17:21  2002
-// Modified:   $Date: 2013/06/12 14:05:48 $
-// Language:   PHP
+// File:        $RCSFile$
+// Revision:    $Revision: 1.1 $
+// Description: Main PHP module to MAPS
+// Author:      Andrew@DeFaria.com
+// Created:     Fri Nov 29 14:17:21  2002
+// Modified:    $Date: 2013/06/12 14:05:48 $
+// Language:    PHP
 //
 // (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
 //
 ////////////////////////////////////////////////////////////////////////////////
 // Get userid
-if (isset ($_REQUEST ["userid"])) {
-  $userid = $_REQUEST ["userid"];
+if (isset($_REQUEST["userid"])) {
+  $userid = $_REQUEST["userid"];
 } // if
 $from_cookie = false;
 
-if (!isset ($userid)) {
+if (!isset($userid)) {
   // No userid, see if we have a cookie for it
   $userid=$_COOKIE["MAPSUser"];
   $from_cookie = true;
@@ -34,51 +34,51 @@ $Types = array (
   "nulllist"
 );
 
-function DBError ($msg, $statement) {
-  $errno  = mysql_errno ();
-  $errmsg = mysql_error ();
+function DBError($msg, $statement) {
+  $errno  = mysql_errno();
+  $errmsg = mysql_error();
   print "$msg<br>Error # $errno $errmsg";
   print "<br>SQL Statement: $statement";
 
-  exit ($errno);
+  exit($errno);
 } // DBError
 
-function OpenDB () {
-  $db = mysql_connect ("localhost", "mapsadmin", "mapsadmin")
-    or DBError ("OpenDB: Unable to connect to database server", "Connect");
+function OpenDB() {
+  $db = mysql_connect("localhost", "mapsadmin", "mapsadmin")
+    or DBError("OpenDB: Unable to connect to database server", "Connect");
 
-  mysql_select_db ("MAPS")
-    or DBError ("OpenDB: Unable to select MAPS database", "adefaria_maps");
+  mysql_select_db("MAPS")
+    or DBError("OpenDB: Unable to select MAPS database", "adefaria_maps");
 } // OpenDB
 
-function SetContext ($new_userid) {
+function SetContext($new_userid) {
   global $userid;
 
   $userid = $new_userid;
 } // SetContext
 
-function Encrypt ($password, $userid) {
+function Encrypt($password, $userid) {
   $statement = "select encode(\"$password\",\"$userid\")";
 
-  $result = mysql_query ($statement)
-    or DBError ("Encrypt: Unable to execute statement", $statement);
+  $result = mysql_query($statement)
+    or DBError("Encrypt: Unable to execute statement", $statement);
 
   // Get return value, which should be the encoded password
-  $row = mysql_fetch_array ($result);
+  $row = mysql_fetch_array($result);
 
-  return $row [0];
+  return $row[0];
 } // Encrypt
 
-function UserExists ($userid) {
+function UserExists($userid) {
   $statement = "select userid, password from user where userid = \"$userid\"";
 
-  $result = mysql_query ($statement)
+  $result = mysql_query($statement)
     or DBError ("UserExists: Unable to execute statement", $statement);
 
-  $row = mysql_fetch_array ($result);
+  $row = mysql_fetch_array($result);
 
-  $dbuserid   = $row ["userid"];
-  $dbpassword = $row ["password"];
+  $dbuserid   = $row["userid"];
+  $dbpassword = $row["password"];
 
   if ($dbuserid != $userid) {
     return -1;
@@ -87,11 +87,11 @@ function UserExists ($userid) {
   } # if
 } // UserExists
 
-function Login ($userid, $password) {
-  $password = Encrypt ($password, $userid);
+function Login($userid, $password) {
+  $password = Encrypt($password, $userid);
 
   // Check if user exists
-  $dbpassword = UserExists ($userid);
+  $dbpassword = UserExists($userid);
 
   // Return -1 if user doesn't exist
   if ($dbpassword == -1) {
@@ -102,8 +102,8 @@ function Login ($userid, $password) {
   if ($password != $dbpassword) {
     return -2;
   } else {
-    setcookie ("MAPSUser", $userid, time()+60*60*24*30, "/maps");
-    SetContext ($userid);
+    setcookie("MAPSUser", $userid, time()+60*60*24*30, "/maps");
+    SetContext($userid);
     return 0;
   } // if
 } // Login
@@ -113,110 +113,110 @@ function CountList ($type) {
 
   $statement = "select count(*) as count from list where type=\"$type\" and userid=\"$userid\"";
 
-  $result = mysql_query ($statement)
-    or DBError ("CountList: Unable to count list: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("CountList: Unable to count list: ", $statement);
 
   // How many rows are there?
-  $row = mysql_fetch_array ($result);
+  $row = mysql_fetch_array($result);
 
-  return $row ["count"];
+  return $row["count"];
 } // CountList
 
-function FindList ($type, $next, $lines) {
+function FindList($type, $next, $lines) {
   global $db;
   global $userid;
   global $lines;
 
   $statement = "select * from list where type=\"$type\" and userid=\"$userid\" order by sequence limit $next, $lines";
 
-  $result = mysql_query ($statement)
+  $result = mysql_query($statement)
     or DBError ("FindList: Unable to execute query: ", $statement);
 
-  $count = mysql_num_rows ($result);
+  $count = mysql_num_rows($result);
 
-  return array ($count, $result);
+  return array($count, $result);
 } // FindList
 
-function Today2SQLDatetime () {
+function Today2SQLDatetime() {
   return date ("Y-m-d H:i:s");
 } // Today2SQLDatetime
 
-function countem ($table, $condition) {
+function countem($table, $condition) {
   $statement = "select count(distinct sender) as count from $table where $condition";
 
-  $result = mysql_query ($statement)
-    or DBError ("countem: Unable to perform query: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("countem: Unable to perform query: ", $statement);
 
   // How many rows are there?
-  $row = mysql_fetch_array ($result);
+  $row = mysql_fetch_array($result);
 
-  return $row ["count"];
+  return $row["count"];
 } // countem
 
-function countlog ($condition="") {
+function countlog($condition="") {
   global $userid;
 
   if ($condition != "") {
-    return countem ("log", "userid=\"$userid\" and " . $condition);
+    return countem("log", "userid=\"$userid\" and " . $condition);
   } else {
-    return countem ("log", "userid=\"$userid\"");
+    return countem("log", "userid=\"$userid\"");
   } // if
 } // countlog
 
-function SubtractDays ($date, $nbr_days) {
+function SubtractDays($date, $nbr_days) {
 
 } // SubtractDays
 
-function GetStats ($nbr_days, $date = "") {
+function GetStats($nbr_days, $date = "") {
   global $Types;
 
   if ($date == "") {
-    $date = Today2SQLDatetime ();
+    $date = Today2SQLDatetime();
   } // if
 
   while ($nbr_days > 0) {
-    $ymd = substr ($date, 0, 10);
+    $ymd = substr($date, 0, 10);
     $sod = $ymd . " 00:00:00";
     $eod = $ymd . " 23:59:59";
 
     foreach ($Types as $type) {
       $condition = "type=\"$type\" and (timestamp > \"$sod\" and timestamp < \"$eod\")";
-      $stats[$type] = countlog ($condition);
+      $stats[$type] = countlog($condition);
     } # foreach
 
     $dates[$ymd] = &$stats;
 
-    $date = SubtractDays ($date, 1);
+    $date = SubtractDays($date, 1);
     $nbr_days--;
   } # while
 
   return $dates;
 } # GetStats
 
-function displayquickstats () {
-  $today = substr (Today2SQLDatetime (), 0, 10);
-  $dates = getquickstats ($today);
-  $current_time = date ("g:i a");
+function displayquickstats() {
+  $today = substr (Today2SQLDatetime(), 0, 10);
+  $dates = getquickstats($today);
+  $current_time = date("g:i a");
 
   // Start quickstats
   print "<div class=quickstats>";
   print "<h4 align=center class=header>Today's Activity</h4>";
   print "<p align=center><b>as of $current_time</b></p>";
 
-  $processed           = $dates[$today]["processed"];
-  $returned            = $dates[$today]["returned"];
-  $returned_pct                = $processed == 0 ? 0 :
+  $processed     = $dates[$today]["processed"];
+  $returned      = $dates[$today]["returned"];
+  $returned_pct  = $processed == 0 ? 0 :
     number_format ($returned / $processed * 100, 1, ".", "");
-  $whitelist           = $dates[$today]["whitelist"];
-  $whitelist_pct       = $processed == 0 ? 0 :
+  $whitelist     = $dates[$today]["whitelist"];
+  $whitelist_pct = $processed == 0 ? 0 :
     number_format ($whitelist / $processed * 100, 1, ".", "");
-  $blacklist           = $dates[$today]["blacklist"];
-  $blacklist_pct       = $processed == 0 ? 0 :
+  $blacklist     = $dates[$today]["blacklist"];
+  $blacklist_pct = $processed == 0 ? 0 :
     number_format ($blacklist / $processed * 100, 1, ".", "");
-  $registered          = $dates[$today]["registered"];
-  $mailloop            = $dates[$today]["mailloop"];
-  $nulllist            = $dates[$today]["nulllist"];
-  $nulllist_pct                = $processed == 0 ? 0 :
+  $registered    = $dates[$today]["registered"];
+  $mailloop      = $dates[$today]["mailloop"];
+  $nulllist      = $dates[$today]["nulllist"];
+  $nulllist_pct  = $processed == 0 ? 0 :
     number_format ($nulllist / $processed * 100, 1, ".", "");
 
   $returned_link = $returned == 0 ? 0 :
@@ -274,23 +274,23 @@ print <<<EOT
 EOT;
 } // displayquickstats
 
-function getquickstats ($date) {
+function getquickstats($date) {
   global $Types;
 
-  $dates = GetStats (1, $date);
+  $dates = GetStats(1, $date);
 
   foreach ($Types as $type) {
-    if (isset ($dates [$date]["processed"])) {
-      $dates [$date]["processed"] += $dates [$date][$type];
+    if (isset ($dates[$date]["processed"])) {
+      $dates[$date]["processed"] += $dates[$date][$type];
     } else {
-      $dates [$date]["processed"] = $dates [$date][$type];
+      $dates[$date]["processed"] = $dates[$date][$type];
     } // if
   } # foreach
 
   return $dates;
 } // getquickstats
 
-function NavigationBar ($userid) {
+function NavigationBar($userid) {
   print "<div id=leftbar>";
 
   if (!isset ($userid) || $userid == "") {
@@ -306,7 +306,7 @@ function NavigationBar ($userid) {
     </div>
 END;
   } else {
-    $Userid = ucfirst ($userid);
+    $Userid = ucfirst($userid);
     print <<<END
   <div class="username">Welcome $Userid</div>
     <div class="menu">
@@ -332,7 +332,7 @@ END;
   </div>
 END;
 
-    displayquickstats ();
+    displayquickstats();
 
     print <<<END
   <div class="search">
@@ -349,15 +349,15 @@ END;
   print "</div>";
 } # NavigationBar
 
-function GetUserLines () {
+function GetUserLines() {
   global $userid;
 
   $lines = 10;
 
   $statement = "select value from useropts where userid=\"$userid\" and name=\"Page\"";
 
-  $result = mysql_query ($statement)
-    or DBError ("GetUserLines: Unable to execute query: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("GetUserLines: Unable to execute query: ", $statement);
 
   $row = mysql_fetch_array ($result);
 
@@ -368,15 +368,15 @@ function GetUserLines () {
   return $lines;
 } // GetUserLines
 
-function DisplayList ($type, $next, $lines) {
+function DisplayList($type, $next, $lines) {
   global $userid;
   global $total;
   global $last;
 
-  $statement="select * from list where userid=\"$userid\" and type=\"$type\" order by sequence limit $next, $lines";
+  $statement = "select * from list where userid=\"$userid\" and type=\"$type\" order by sequence limit $next, $lines";
 
-  $result = mysql_query ($statement)
-    or DBError ("DisplayList: Unable to execute query: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("DisplayList: Unable to execute query: ", $statement);
 
   for ($i = 0; $i < $lines; $i++) {
     $row = mysql_fetch_array ($result);
@@ -385,40 +385,40 @@ function DisplayList ($type, $next, $lines) {
       break;
     } // if
 
-    $sequence  = $row ["sequence"];
-    $username  = $row ["pattern"]      == "" ? "&nbsp;" : $row ["pattern"];
-    $domain    = $row ["domain"]       == "" ? "&nbsp;" : $row ["domain"];
-    $hit_count = $row ["hit_count"]    == "" ? "&nbsp;" : $row ["hit_count"];
-    $last_hit  = $row ["last_hit"]     == "" ? "&nbsp;" : $row ["last_hit"];
-    $comments  = $row ["comment"]      == "" ? "&nbsp;" : $row ["comment"];
+    $sequence  = $row["sequence"];
+    $username  = $row["pattern"]   == "" ? "&nbsp;" : $row["pattern"];
+    $domain    = $row["domain"]    == "" ? "&nbsp;" : $row["domain"];
+    $hit_count = $row["hit_count"] == "" ? "&nbsp;" : $row["hit_count"];
+    $last_hit  = $row["last_hit"]  == "" ? "&nbsp;" : $row["last_hit"];
+    $comments  = $row["comment"]   == "" ? "&nbsp;" : $row["comment"];
 
     // Remove time from last hit
-    $last_hit = substr ($last_hit, 0, (strlen ($last_hit) - strpos ($last_hit, " ")) + 1);
+    $last_hit = substr($last_hit, 0, (strlen($last_hit) - strpos($last_hit, " ")) + 1);
 
     // Reformat last_hit
     $last_hit = substr ($last_hit, 5, 2) . "/" .
                 substr ($last_hit, 8, 2) . "/" .
                 substr ($last_hit, 0, 4);
-    $leftclass = ($i == $lines || $sequence == $total || $sequence == $last) ?
+    $leftclass  = ($i == $lines || $sequence == $total || $sequence == $last) ?
       "tablebottomleft" : "tableleftdata";
-    $dataclass = ($i == $lines || $sequence == $total || $sequence == $last) ?
+    $dataclass  = ($i == $lines || $sequence == $total || $sequence == $last) ?
       "tablebottomdata"  : "tabledata";
     $rightclass = ($i == $lines || $sequence == $total || $sequence == $last) ?
       "tablebottomright" : "tablerightdata";
 
-    print "<td class=$leftclass align=center>" . $sequence             . "</td>";
+    print "<td class=$leftclass align=center>"  . $sequence  . "</td>";
     print "<td class=$dataclass align=center><input type=checkbox name=action" . $sequence . " value=on></td>\n";
-    print "<td class=$dataclass align=right>"  . $username             . "</td>";
+    print "<td class=$dataclass align=right>"   . $username  . "</td>";
     print "<td class=$dataclass align=center>@</td>";
-    print "<td class=$dataclass align=left>"   . $domain               . "</td>";
-    print "<td class=$dataclass align=right>"  . $hit_count            . "</td>";
-    print "<td class=$dataclass align=center>" . $last_hit             . "</td>";
-    print "<td class=$rightclass align=left>"  . $comments             . "</td>";
+    print "<td class=$dataclass align=left><a href=\"http://$domain\" target=_blank>$domain</a></td>";
+    print "<td class=$dataclass align=right>"   . $hit_count . "</td>";
+    print "<td class=$dataclass align=center>"  . $last_hit  . "</td>";
+    print "<td class=$rightclass align=left>"   . $comments  . "</td>";
     print "</tr>";
   } // for
 } // DisplayList
 
-function MAPSHeader () {
+function MAPSHeader() {
   print <<<END
   <meta name="author" content="Andrew DeFaria <Andre@DeFaria.com>">
   <meta name="MAPS" "Mail Authorization and Permission System">
@@ -434,7 +434,7 @@ function MAPSHeader () {
 END;
 } // MAPSHeader
 
-function ListDomains ($top = 10) {
+function ListDomains($top = 10) {
   global $userid;
 
   // Generate a list of the top 10 spammers by domain
@@ -447,8 +447,8 @@ function ListDomains ($top = 10) {
   $statement = $statement . "group by domain order by nbr desc";
 
   // Do the query
-  $result = mysql_query ($statement)
-    or DBError ("ListDomains: Unable to execute query: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("ListDomains: Unable to execute query: ", $statement);
 
   print <<<END
   <table border="0" cellspacing="0" cellpadding="4" align="center" name="domainlist">
@@ -493,7 +493,7 @@ END;
 END;
 } // ListDomains
 
-function Space () {
+function Space() {
   global $userid;
 
   // Tally up space used by $userid
@@ -501,16 +501,16 @@ function Space () {
 
   $statement = "select * from email where userid = \"$userid\"";
 
-  $result = mysql_query ($statement)
-    or DBError ("Space: Unable to execute query: ", $statement);
+  $result = mysql_query($statement)
+    or DBError("Space: Unable to execute query: ", $statement);
 
   while ($row = mysql_fetch_array ($result)) {
     $msg_space =
-      strlen ($row["userid"])          +
-      strlen ($row["sender"])          +
-      strlen ($row["subject"])         +
-      strlen ($row["timestamp"])       +
-      strlen ($row["data"]);
+      strlen($row["userid"])    +
+      strlen($row["sender"])    +
+      strlen($row["subject"])   +
+      strlen($row["timestamp"]) +
+      strlen($row["data"]);
     $space = $space + $msg_space;
   } // while