OSDN Git Service

Added users online list.
authorKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Wed, 5 Aug 2009 08:48:16 +0000 (08:48 +0000)
committerKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Wed, 5 Aug 2009 08:48:16 +0000 (08:48 +0000)
git-svn-id: svn://svn.code.sf.net/p/intdb/svn/trunk@290 2b68903e-0b30-0410-9a39-a2e4f3c5be39

inc/function.php
inc/groupsetup.php
inc/members.php
inc/prelogin.php
inc/stats.php
inc/versioninfo.php
themes/Gray/settings.php
themes/iDB/settings.php

index a320a11..1d4c7fe 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: function.php - Last Update: 8/1/2009 SVN 285 - Author: cooldude2k $
+    $FileInfo: function.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="function.php"||$File3Name=="/function.php") {
@@ -78,6 +78,13 @@ $REFERERurl = null;
     if(isset($prefix)) { return $prefix . $uuid; }
     if(!isset($prefix)) { return $uuid; }
   }
+// unserialize sessions variables
+function unserialize_session($data) {
+    $vars=preg_split('/([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff^|]*)\|/',
+              $data,-1,PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
+    for($i=0; $vars[$i]; $i++) $result[$vars[$i++]]=unserialize($vars[$i]);
+    return $result;
+}
 // Make the Query String if we are not useing &=
 function qstring($qstr=";",$qsep="=")
 { $_GET = null; $_GET = array();
index 23ac9f1..9e88404 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: groupsetup.php - Last Update: 6/27/2009 SVN 271 - Author: cooldude2k $
+    $FileInfo: groupsetup.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="groupsetup.php"||$File3Name=="/groupsetup.php") {
@@ -28,6 +28,7 @@ if($numchkusr==1) {
 $ChkUsrID=mysql_result($resultchkusr,0,"id");
 $ChkUsrName=mysql_result($resultchkusr,0,"Name");
 $ChkUsrGroup=mysql_result($resultchkusr,0,"GroupID");
+$ChkUsrGroupID=$ChkUsrGroup;
 $ChkUsrPass=mysql_result($resultchkusr,0,"Password");
 $ChkUsrTimeZone=mysql_result($resultchkusr,0,"TimeZone");
 $ChkUsrTheme=mysql_result($resultchkusr,0,"UseTheme");
@@ -54,8 +55,10 @@ if($BanError!="yes") {
 $_SESSION['Theme']=$ChkUsrTheme;
 $_SESSION['MemberName']=$ChkUsrName;
 $_SESSION['UserID']=$ChkUsrID;
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$ChkUsrTimeZone;
 $_SESSION['UserGroup']=$ChkUsrGroup;
+$_SESSION['UserGroupID']=$ChkUsrGroupID;
 $_SESSION['UserDST']=$ChkUsrDST;
 $_SESSION['UserPass']=$ChkUsrPass;
 $_SESSION['LastPostTime'] = $ChkUsrLastPostTime; } }
@@ -83,10 +86,20 @@ ob_clean(); @header("Content-Type: text/plain; charset=".$Settings['charset']);
 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
 @mysql_free_result($numchkusr); @mysql_free_result($svrgresultkgb); }
 if($_SESSION['UserID']==0||$_SESSION['UserID']==null) {
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['MemberName'] = null;
-$_SESSION['UserGroup'] = $Settings['GuestGroup']; }
+$_SESSION['UserGroup'] = $Settings['GuestGroup']; 
+$gidquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `name`='%s' LIMIT 1", array($Settings['GuestGroup']));
+$gidresult=mysql_query($gidquery);
+$_SESSION['UserGroupID']=mysql_result($gidresult,0,"id"); 
+@mysql_free_result($gidresult); }
 if($_SESSION['MemberName']==null) { $_SESSION['UserID'] = "0";
-$_SESSION['UserGroup'] = $Settings['GuestGroup']; }
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
+$_SESSION['UserGroup'] = $Settings['GuestGroup']; 
+$gidquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `name`='%s' LIMIT 1", array($Settings['GuestGroup']));
+$gidresult=mysql_query($gidquery);
+$_SESSION['UserGroupID']=mysql_result($gidresult,0,"id"); 
+@mysql_free_result($gidresult); }
 // Member Group Setup
 if(!isset($_SESSION['UserGroup'])) { $_SESSION['UserGroup'] = null; }
 if($_SESSION['UserGroup']==null) { 
@@ -293,8 +306,7 @@ $CatPermissionInfo['Name'][$PerCatID]=mysql_result($per2esult,$per2i,"Name");
 $CatPermissionInfo['CategoryID'][$PerCatID]=mysql_result($per2esult,$per2i,"CategoryID");
 if(!is_numeric($CatPermissionInfo['CategoryID'][$PerCatID])) { $Per2Error = true; }
 $CatPermissionInfo['CanViewCategory'][$PerCatID]=mysql_result($per2esult,$per2i,"CanViewCategory");
-if($CatPermissionInfo['CanViewCategory'][$PerCatID]!="yes"&&$CatPermissionInfo['CanViewCategory'][$PerCatID]!="no") {
-               $Per2Error = true; }
+if($CatPermissionInfo['CanViewCategory'][$PerCatID]!="yes"&&$CatPermissionInfo['CanViewCategory'][$PerCatID]!="no") { $Per2Error = true; }
 if($Per2Error===true) { $per2i = $per2num; }
 ++$per2i; } if($Per2Error===true) {
 @header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($per2esult);
index 9506e3c..d63f199 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: members.php - Last Update: 7/21/2009 SVN 276 - Author: cooldude2k $
+    $FileInfo: members.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="members.php"||$File3Name=="/members.php") {
@@ -538,6 +538,7 @@ $YourNameM=mysql_result($resultlog,$i,"Name");
 $YourPassM=mysql_result($resultlog,$i,"Password");
 $PostCount=mysql_result($resultlog,$i,"PostCount");
 $YourGroupM=mysql_result($resultlog,$i,"GroupID");
+$YourGroupIDM=$YourGroupM;
 $YourLastPostTime=mysql_result($resultlog,$i,"LastPostTime");
 $YourBanTime=mysql_result($resultlog,$i,"BanTime");
 $CGMTime = GMTimeStamp();
@@ -563,8 +564,10 @@ mysql_query($queryup);
 $_SESSION['Theme']=$UseTheme;
 $_SESSION['MemberName']=$YourNameM;
 $_SESSION['UserID']=$YourIDM;
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$YourTimeZoneM;
 $_SESSION['UserGroup']=$YourGroupM;
+$_SESSION['UserGroupID']=$YourGroupIDM;
 $_SESSION['UserDST']=$YourDSTM;
 $_SESSION['UserPass']=$NewPassword;
 $_SESSION['LastPostTime'] = $YourLastPostTime;
@@ -962,6 +965,7 @@ $ir=0;
 $YourIDMr=mysql_result($resultlogr,$ir,"id");
 $YourNameMr=mysql_result($resultlogr,$ir,"Name");
 $YourGroupMr=mysql_result($resultlogr,$ir,"GroupID");
+$YourGroupIDMr=$YourGroupMr;
 $gquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `id`=%i LIMIT 1", array($YourGroupMr));
 $gresult=mysql_query($gquery);
 $YourGroupMr=mysql_result($gresult,0,"Name");
@@ -973,9 +977,11 @@ $YourDSTMr=mysql_result($resultlogr,$ir,"DST"); }
 $_SESSION['Loggedin']=true;
 $_SESSION['MemberName']=$YourNameMr;
 $_SESSION['UserID']=$YourIDMr;
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$YourTimeZoneMr;
 $_SESSION['UserDST']=$YourDSTMr;
 $_SESSION['UserGroup']=$YourGroupMr;
+$_SESSION['UserGroupID']=$YourGroupIDMr;
 $_SESSION['UserPass']=$NewPassword;
 $_SESSION['DBName']=$Settings['sqldb'];
 if($_POST['storecookie']=="true") {
index 7928591..ad6d6f7 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: prelogin.php - Last Update: 6/27/2009 SVN 271 - Author: cooldude2k $
+    $FileInfo: prelogin.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="prelogin.php"||$File3Name=="/prelogin.php") {
@@ -25,6 +25,7 @@ if($numlog2==1) {
 $YourIDAM=mysql_result($resultlog2,0,"id");
 $YourNameAM=mysql_result($resultlog2,0,"Name");
 $YourGroupAM=mysql_result($resultlog2,0,"GroupID");
+$YourGroupIDAM=$YourGroupAM;
 $YourPassAM=mysql_result($resultlog2,0,"Password");
 $gquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `id`=%i LIMIT 1", array($YourGroupAM));
 $gresult=mysql_query($gquery);
@@ -45,13 +46,14 @@ $queryup = query("UPDATE `".$Settings['sqltable']."members` SET `LastActive`=%i,
 $_SESSION['Theme']=$UseThemeAM;
 $_SESSION['MemberName']=$_COOKIE['MemberName'];
 $_SESSION['UserID']=$YourIDAM;
+$_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$YourTimeZoneAM;
 $_SESSION['UserGroup']=$YourGroupAM;
+$_SESSION['UserGroupID']=$YourGroupIDAM;
 $_SESSION['UserDST']=$YourDSTAM;
 $_SESSION['UserPass']=$YourPassAM;
 $_SESSION['LastPostTime'] = $YourLastPostTime;
 $_SESSION['DBName']=$Settings['sqldb'];
-
 if($cookieDomain==null) {
 @setcookie("MemberName", $YourNameAM, time() + (7 * 86400), $cbasedir);
 @setcookie("UserID", $YourIDAM, time() + (7 * 86400), $cbasedir);
index 22b7ae5..bad961b 100644 (file)
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: stats.php - Last Update: 7/21/2009 SVN 276 - Author: cooldude2k $
+    $FileInfo: stats.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="stats.php"||$File3Name=="/stats.php") {
        require('index.php');
        exit(); }
+$uolcuttime = GMTimeStamp();
+$uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
+$uolquery = query("SELECT session_data FROM `".$Settings['sqltable']."sessions` WHERE `expires` >= %i ORDER BY `expires` DESC", array($uoltime));
+$uolresult=mysql_query($uolquery);
+$uolnum=mysql_num_rows($uolresult);
+$uoli=0; $olmn = 0; $olgn = 0; $olan = 0;
+$MembersOnline = null; $GuestsOnline = null;
+while ($uoli < $uolnum) {
+$session_data=mysql_result($uolresult,$uoli,"session_data"); 
+$UserSessInfo = unserialize_session($session_data);
+$AmIHiddenUser = GetHiddenMember($UserSessInfo['UserID'],$Settings['sqltable']);
+if($UserSessInfo['UserGroup']!=$Settings['GuestGroup']) {
+if($AmIHiddenUser=="no"&&$UserSessInfo['UserID']>0) {
+if($olmn>0) { $MembersOnline .= ", "; }
+$MembersOnline .= "<a href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$UserSessInfo['UserID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$UserSessInfo['MemberName']."</a>"; 
+++$olmn; }
+if($UserSessInfo['UserID']<=0||$AmIHiddenUser=="yes") {
+++$olan; } }
+if($UserSessInfo['UserGroup']==$Settings['GuestGroup']) {
+/*$GuestsOnline .= "<a href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$MemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$MemList['Name']."</a>";*/
+++$olgn; }
+++$uoli; }
 if($_GET['act']=="view"||$_GET['act']=="stats") {
 $ntquery = query("SELECT COUNT(*) FROM `".$Settings['sqltable']."topics`", array(null));
 $ntresult = mysql_query($ntquery);
@@ -51,20 +73,32 @@ if($NewestMem['ID']<=0) { $NewestMem['ID'] = "0"; $NewestMem['Name'] = "Anonymou
 <?php echo $ThemeSet['TitleIcon']; ?><a id="bstats" href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=stats",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>#bstats">Board Statistics</a></span>
 </td>
 </tr><?php } ?>
+
 <tr id="Stats1" class="TableStatsRow2">
-<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;"><?php echo $uolnum; ?> users online</td>
 </tr>
 <tr class="TableStatsRow3" id="Stats2">
 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
 <?php echo $ThemeSet['StatsIcon']; ?></div></td>
 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
+&nbsp;<span style="font-weight: bold;"><?php echo $olgn; ?></span> guests, <span style="font-weight: bold;"><?php echo $olmn; ?></span> members, <span style="font-weight: bold;"><?php echo $olan; ?></span> anonymous members <br />
+&nbsp;<?php echo $MembersOnline; ?>
+</div></td>
+</tr>
+<tr id="Stats3" class="TableStatsRow2">
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
+</tr>
+<tr class="TableStatsRow3" id="Stats4">
+<td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
+<?php echo $ThemeSet['StatsIcon']; ?></div></td>
+<td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
 &nbsp;Our members have made a total of <?php echo $numposts; ?> posts<br />
 &nbsp;We have a total of <?php echo $numtopics; ?> topics made<br />
 &nbsp;We have <?php echo $nummembers; ?> registered members<br />
 &nbsp;Our newest member is <a href="<?php echo url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$NewestMem['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member']); ?>"><?php echo $NewestMem['Name']; ?></a>
 </div></td>
 </tr>
-<tr id="Stats3" class="TableStatsRow4">
+<tr id="Stats5" class="TableStatsRow4">
 <td class="TableStatsColumn4" colspan="2">&nbsp;</td>
 </tr>
 </table></div>
index c131915..026da16 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2009 iDB Support - http://idb.berlios.de/
     Copyright 2004-2009 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: versioninfo.php - Last Update: 8/3/2009 SVN 289 - Author: cooldude2k $
+    $FileInfo: versioninfo.php - Last Update: 8/5/2009 SVN 290 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="versioninfo.php"||$File3Name=="/versioninfo.php") {
@@ -27,8 +27,8 @@ function version_info($proname,$subver,$ver,$supver,$reltype,$svnver,$showsvn) {
        return $return_var; }
 // Version number and date stuff. :P
 $VER1[0] = 0; $VER1[1] = 2; $VER1[2] = 8; $VERFull[1] = $VER1[0].".".$VER1[1].".".$VER1[2];
-$VER2[0] = "Pre-Alpha"; $VER2[1] = "PA"; $VER2[2] = "SVN"; $SubVerN = 289; $RName = "iDB"; $SFName = "IntDB";
-$SVNDay[0] = 8; $SVNDay[1] = 3; $SVNDay[2] = 2009; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2];
+$VER2[0] = "Pre-Alpha"; $VER2[1] = "PA"; $VER2[2] = "SVN"; $SubVerN = 290; $RName = "iDB"; $SFName = "IntDB";
+$SVNDay[0] = 8; $SVNDay[1] = 5; $SVNDay[2] = 2009; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2];
 $VerInfo['iDB_Ver'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[1],$SubVerN,false);
 $VerInfo['iDB_Ver_SVN'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[1],$SubVerN,true);
 $VerInfo['iDB_Full_Ver'] = version_info($RName,$VER1[0],$VER1[1],$VER1[2],$VER2[0],$SubVerN,false);
index b8a7a51..6c53c80 100644 (file)
@@ -61,7 +61,7 @@ $ThemeSet['RedirectIcon'] = "<div style=\"text-align: center; font-size: 11px;\"
 $ThemeSet['TitleIcon'] = null;
 $ThemeSet['NavLinkIcon'] = null;
 $ThemeSet['NavLinkDivider'] = " -&gt; ";
-$ThemeSet['StatsIcon'] = "<div style=\"text-align: center; font-size: 11px;\" title=\"Board Stats\"><br />(S)<br /></div> ";
+$ThemeSet['StatsIcon'] = "<div style=\"text-align: center; font-size: 11px;\" title=\"Board Stats\">(S)</div> ";
 $ThemeSet['NoAvatar'] = "themes/Gray/noavatar.png";
 $ThemeSet['NoAvatarSize'] = "100x100";
 ?>
\ No newline at end of file
index 5f1364a..a9ea369 100644 (file)
@@ -61,7 +61,7 @@ $ThemeSet['RedirectIcon'] = "<div style=\"text-align: center; font-size: 11px;\"
 $ThemeSet['TitleIcon'] = null;
 $ThemeSet['NavLinkIcon'] = null;
 $ThemeSet['NavLinkDivider'] = " -&gt; ";
-$ThemeSet['StatsIcon'] = "<div style=\"text-align: center; font-size: 11px;\" title=\"Board Stats\"><br />(S)<br /></div> ";
+$ThemeSet['StatsIcon'] = "<div style=\"text-align: center; font-size: 11px;\" title=\"Board Stats\">(S)</div> ";
 $ThemeSet['NoAvatar'] = "themes/iDB/noavatar.png";
 $ThemeSet['NoAvatarSize'] = "100x100";
 ?>
\ No newline at end of file