X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fnickname_functions.php;h=f985f5208657cbf61abf4f51bf6f0f34a0647e35;hp=dbaee3b66ec871287ed80e14fc10f4c1e2e1a811;hb=d04211ed60f9155b1ab962a9af9b58efaf908d67;hpb=d7fb965b76faf6e4f3e6d7827abf8e173349e749 diff --git a/inc/libs/nickname_functions.php b/inc/libs/nickname_functions.php index dbaee3b66e..f985f52086 100644 --- a/inc/libs/nickname_functions.php +++ b/inc/libs/nickname_functions.php @@ -10,7 +10,12 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Nickname-Funktionen * * -------------------------------------------------------------------- * - * * + * $Revision:: $ * + * $Date:: $ * + * $Tag:: 0.2.1-FINAL $ * + * $Author:: $ * + * Needs to be in all Files and every File needs "svn propset * + * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2008 by Roland Haeder * * For more information visit: http://www.mxchange.org * @@ -32,49 +37,90 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) -{ - $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; +if (!defined('__SECURITY')) { + $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php'; require($INC); } -// -function NICKNAME_IS_ACTIVE($uidNick) -{ + +// Checks wether the nickname is active +function NICKNAME_IS_ACTIVE ($uidNick) { + // By default nothing is found... $ret = false; - $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE (userid=%d 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($GLOBALS['cache_array']['nick_active'][$uidNick])) { + // Use it directly + $ret = $GLOBALS['cache_array']['nick_active'][$uidNick]; + + // Increment cache counter + incrementConfigEntry('cache_hits'); + } else { + // Init result + $result = false; + + // Nickname or userid used? + if (round($uidNick) == $uidNick) { + // Userid given + $result = SQL_QUERY_ESC("SELECT `userid` FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `userid` =%s LIMIT 1", + array(bigintval($uidNick)), __FUNCTION__, __LINE__); + } else { + // Nickname given + $result = SQL_QUERY_ESC("SELECT `userid` FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `nickname`='%s' LIMIT 1", + array($uidNick), __FUNCTION__, __LINE__); + } - // Free result - SQL_FREERESULT($result); + // Check existence of nickname + $ret = (SQL_NUMROWS($result) == 1); + + // Put it in cache + $GLOBALS['cache_array']['nick_active'][$uidNick] = $ret; + + // Free result + SQL_FREERESULT($result); + } // Return nickname return $ret; } -// -function NICKNAME_GET_NICK($userid) -{ + +// "Getter" for nickname for specfied userid +function NICKNAME_GET_NICK ($userid) { // If not found... - $ret = ""; + $ret = ''; - // Search for non-empty nickname - $result = SQL_QUERY_ESC("SELECT nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND nickname != '' LIMIT 1", - array(bigintval($userid)), __FILE__, __LINE__); + // Found in cache? + if (isset($GLOBALS['cache_array']['nicknames'][$userid])) { + // Use it directly + $ret = $GLOBALS['cache_array']['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)), __FUNCTION__, __LINE__); + + // Found? + if (SQL_NUMROWS($result) == 1) { + // Load nickname from database + list($ret) = SQL_FETCHROW($result); + + // Put it in cche + $GLOBALS['cache_array']['nicknames'][$userid] = $ret; + } // END - if - // Free result - SQL_FREERESULT($result); + // Free result + SQL_FREERESULT($result); + } // Return nickname return $ret; } + +// Simple wrapper function +function NICKNAME_PROBE_ON_USERID ($uid) { + return (NICKNAME_GET_NICK($uid) != ''); +} + // ?>