]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/nickname_functions.php
Cookie code removed, rewritten, internal URLs are now relative (see LOAD_URL()),...
[mailer.git] / inc / libs / nickname_functions.php
index 899d98b6fe73b0e04536387035a7ff3450c17aa9..8b9fe5bcecdaad182f653205a002da7cebd3e79c 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
+
 //
-function NICKNAME_IS_ACTIVE($uidNick)
-{
+function NICKNAME_IS_ACTIVE ($uidNick) {
+       global $cacheArray;
+
+       // By default nothing is found...
        $ret = false;
-       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE (userid=%s AND userid > 0) OR nickname='%s' LIMIT 1",
-        array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
 
-       // Check existence of nickname
-       if (SQL_NUMROWS($result) == 1) $ret = true;
+       // Found in cache?
+       if (isset($cacheArray['nick_active'][$uidNick])) {
+               // Use it directly
+               $ret = $cacheArray['nick_active'][$uidNick];
+
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } else {
+               // Search in database
+               // @TODO Can we replace this with GET_TOTAL_DATA() ?
+               $result = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s OR nickname='%s' LIMIT 1",
+                       array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
+
+               // Check existence of nickname
+               $ret = (SQL_NUMROWS($result) == 1);
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Put it in cache
+               $cacheArray['nick_active'][$uidNick] = $ret;
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
+
 //
-function NICKNAME_GET_NICK($userid)
-{
+function NICKNAME_GET_NICK ($userid) {
+       global $cacheArray;
+
        // If not found...
        $ret = "";
 
-       // Search for non-empty nickname
-       $result = SQL_QUERY_ESC("SELECT nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s AND nickname != '' LIMIT 1",
-        array(bigintval($userid)), __FILE__, __LINE__);
+       // Found in cache?
+       if (isset($cacheArray['nicknames'][$userid])) {
+               // Use it directly
+               $ret = $cacheArray['nicknames'][$userid];
 
-       // Found?
-       if (SQL_NUMROWS($result) == 1)
-       {
-               // Load nickname from database
-               list($ret) = SQL_FETCHROW($result);
-       }
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } elseif (NICKNAME_IS_ACTIVE($userid)) {
+               // Search for non-empty nickname
+               $result = SQL_QUERY_ESC("SELECT nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s AND nickname != '' LIMIT 1",
+                       array(bigintval($userid)), __FILE__, __LINE__);
+
+               // Found?
+               if (SQL_NUMROWS($result) == 1) {
+                       // Load nickname from database
+                       list($ret) = SQL_FETCHROW($result);
 
-       // Free result
-       SQL_FREERESULT($result);
+                       // Put it in cche
+                       $cacheArray['nicknames'][$userid] = $ret;
+               } // END - if
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
+
+// Simple wrapper function
+function NICKNAME_PROBE_ON_USERID ($uid) {
+       return (NICKNAME_GET_NICK($uid) != "");
+}
+
 //
 ?>