OSDN Git Service

Small update
[idb/iDB.git.git] / inc / topics.php
index 02f3342..1b56e10 100644 (file)
@@ -8,10 +8,10 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     Revised BSD License for more details.
 
-    Copyright 2004-2011 iDB Support - http://idb.berlios.de/
-    Copyright 2004-2011 Game Maker 2k - http://gamemaker2k.org/
+    Copyright 2004-2022 iDB Support - https://idb.osdn.jp/support/category.php?act=view&id=1
+    Copyright 2004-2022 Game Maker 2k - https://idb.osdn.jp/support/category.php?act=view&id=2
 
-    $FileInfo: topics.php - Last Update: 08/12/2011 SVN 748 - Author: cooldude2k $
+    $FileInfo: topics.php - Last Update: 4/9/2022 SVN 959 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="topics.php"||$File3Name=="/topics.php") {
@@ -34,7 +34,7 @@ $ForumCatID=sql_result($preresult,0,"CategoryID");
 $ForumName=sql_result($preresult,0,"Name");
 $ForumType=sql_result($preresult,0,"ForumType");
 $ForumShow=sql_result($preresult,0,"ShowForum");
-if($ForumShow=="yes") { $_SESSION['ShowActHidden'] = "yes"; }
+if($ForumShow=="no") { $_SESSION['ShowActHidden'] = "yes"; }
 $InSubForum=sql_result($preresult,0,"InSubForum");
 $RedirectURL=sql_result($preresult,0,"RedirectURL");
 $RedirectTimes=sql_result($preresult,0,"Redirects");
@@ -57,10 +57,12 @@ if($_GET['act']=="create"||$_GET['act']=="maketopic"||
        $_POST['act']=="maketopics") { $ForumCheck = "skip"; } }
 $catcheck = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."categories\" WHERE \"id\"=%i".$CatIgnoreList2."  LIMIT 1", array($ForumCatID));
 $catresult=sql_query($catcheck,$SQLStat);
+$CategoryID=sql_result($catresult,0,"id");
 $CategoryName=sql_result($catresult,0,"Name");
 $CategoryShow=sql_result($catresult,0,"ShowCategory");
-if($CategoryShow=="yes") { $_SESSION['ShowActHidden'] = "yes"; }
+if($CategoryShow=="no") { $_SESSION['ShowActHidden'] = "yes"; }
 $CategoryType=sql_result($catresult,0,"CategoryType");
+$InSubCategory=sql_result($catresult,0,"InSubCategory");
 $CategoryPostCountView=sql_result($catresult,0,"PostCountView");
 $CategoryKarmaCountView=sql_result($catresult,0,"KarmaCountView");
 sql_free_result($catresult);
@@ -89,6 +91,24 @@ $isfRedirectURL=sql_result($isfresult,0,"RedirectURL"); }
 if($isfnum<1) { $InSubForum = "0"; } 
 sql_free_result($isfresult); }
 if($ForumCheck!="skip") {
+if(isset($_SESSION['OldViewingPage'])) { $_SESSION['AncientViewingPage'] = $_SESSION['OldViewingPage']; } else { $_SESSION['AncientViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
+if(isset($_SESSION['OldViewingFile'])) { $_SESSION['AncientViewingFile'] = $_SESSION['OldViewingFile']; } else { 
+        if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
+           $_SESSION['AncientViewingFile'] = $exfile['index'].$Settings['file_ext']; }
+        if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
+           $_SESSION['AncientViewingFile'] = $exfile['index']; } }
+if(isset($_SESSION['OldPreViewingTitle'])) { $_SESSION['AncientPreViewingTitle'] = $_SESSION['OldPreViewingTitle']; } else { $_SESSION['AncientPreViewingTitle'] = "Viewing"; }
+if(isset($_SESSION['OldViewingTitle'])) { $_SESSION['AncientViewingTitle'] = $_SESSION['OldViewingTitle']; } else { $_SESSION['AncientViewingTitle'] = "Board index"; }
+if(isset($_SESSION['OldExtraData'])) { $_SESSION['AncientExtraData'] = $_SESSION['OldExtraData']; } else { $_SESSION['AncientExtraData'] = "currentact:view; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;"; }
+if(isset($_SESSION['ViewingPage'])) { $_SESSION['OldViewingPage'] = $_SESSION['ViewingPage']; } else { $_SESSION['OldViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
+if(isset($_SESSION['ViewingFile'])) { $_SESSION['OldViewingFile'] = $_SESSION['ViewingFile']; } else { 
+        if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
+           $_SESSION['OldViewingFile'] = $exfile['index'].$Settings['file_ext']; }
+        if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
+           $_SESSION['OldViewingFile'] = $exfile['index']; } }
+if(isset($_SESSION['PreViewingTitle'])) { $_SESSION['OldPreViewingTitle'] = $_SESSION['PreViewingTitle']; } else { $_SESSION['OldPreViewingTitle'] = "Viewing"; }
+if(isset($_SESSION['ViewingTitle'])) { $_SESSION['OldViewingTitle'] = $_SESSION['ViewingTitle']; } else { $_SESSION['OldViewingTitle'] = "Board index"; }
+if(isset($_SESSION['ExtraData'])) { $_SESSION['OldExtraData'] = $_SESSION['ExtraData']; } else { $_SESSION['OldExtraData'] = "currentact:view; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;"; }
 $_SESSION['ViewingPage'] = url_maker(null,"no+ext","act=view&id=".$ForumID."&page=".$_GET['page'],"&","=",$prexqstr[$ForumType],$exqstr[$ForumType]);
 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
 $_SESSION['ViewingFile'] = $exfile[$ForumType].$Settings['file_ext']; }
@@ -96,6 +116,7 @@ if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
 $_SESSION['ViewingFile'] = $exfile[$ForumType]; }
 $_SESSION['PreViewingTitle'] = "Viewing Forum:";
 $_SESSION['ViewingTitle'] = $ForumName;
+$_SESSION['ExtraData'] = "currentact:".$_GET['act']."; currentcategoryid:".$InSubCategory.",".$CategoryID."; currentforumid:".$InSubForum.",".$ForumID."; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;"; 
 ?>
 <div class="NavLinks"><?php echo $ThemeSet['NavLinkIcon']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>"><?php echo $Settings['board_name']; ?></a><?php echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile[$CategoryType],$Settings['file_ext'],"act=view&id=".$ForumCatID,$Settings['qstr'],$Settings['qsep'],$prexqstr[$CategoryType],$exqstr[$CategoryType]); ?>"><?php echo $CategoryName; ?></a><?php if($InSubForum!="0") { echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile[$isfForumType],$Settings['file_ext'],"act=view&id=".$isfForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr[$isfForumType],$exqstr[$isfForumType]); ?>"><?php echo $isfForumName; ?></a><?php } echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile[$ForumType],$Settings['file_ext'],"act=view&id=".$ForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr[$ForumType],$exqstr[$ForumType]); ?>"><?php echo $ForumName; ?></a></div>
 <div class="DivNavLinks">&nbsp;</div>
@@ -170,7 +191,7 @@ if($nums<$num) { $nextpage = $_GET['page'] + 1; }
 if($nums>=$num) { $nextpage = $_GET['page']; }
 if($numz>=$Settings['max_topics']) { $backpage = $_GET['page'] - 1; }
 if($_GET['page']<=1) { $backpage = 1; }
-$pnum = $num; $l = 1; $Pages = null;
+$pnum = $num; $l = 1; $Pages = array();;
 while ($pnum>0) {
 if($pnum>=$Settings['max_topics']) { 
        $pnum = $pnum - $Settings['max_topics']; 
@@ -294,7 +315,10 @@ $OldForumID=sql_result($result,$i,"OldForumID");
 $UsersID=sql_result($result,$i,"UserID");
 $GuestsName=sql_result($result,$i,"GuestName");
 $TheTime=sql_result($result,$i,"TimeStamp");
-$TheTime=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TheTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TheTime);
+$tmpusrcurtime->setTimezone($usertz);
+$TheTime=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $NumReply=sql_result($result,$i,"NumReply");
 $NumberPosts=$NumReply + 1;
 $prepagelist = null;
@@ -399,7 +423,10 @@ $UsersName1 = $PreUsersName1['Name'];
 $UsersHidden1 = $PreUsersName1['Hidden'];
 $GuestsName1=sql_result($glrresult,0,"GuestName");
 $TimeStamp1=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp1=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp1,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']); }
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp1);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp1=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']); }
 $NumPages = null; $NumRPosts = $NumReply + 1;
 if(!isset($Settings['max_posts'])) { $Settings['max_posts'] = 10; }
 if($NumRPosts>$Settings['max_posts']) {
@@ -445,7 +472,7 @@ if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat==0) {
        if($NumReply<$Settings['hot_topic_num']) {
                $PreTopicText = "<span style=\"font-weight: bold;\">Pinned: </span>";
                $PreTopic=$ThemeSet['PinTopic']; } }
-if ($TopicStat>=0&&$TopicStat<=3&&$PinnedTopic==0) {
+if ($TopicStat>0&&$TopicStat<=3&&$PinnedTopic==0) {
        if($NumReply>=$Settings['hot_topic_num']) {
                $PreTopic=$ThemeSet['HotClosedTopic']; }
        if($NumReply<$Settings['hot_topic_num']) {
@@ -455,7 +482,7 @@ if ($PinnedTopic==0&&$TopicStat==0) {
                        $PreTopic=$ThemeSet['HotTopic']; }
                if($NumReply<$Settings['hot_topic_num']) {
                        $PreTopic=$ThemeSet['TopicIcon']; } }
-if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat>=0&&$TopicStat<=3) {
+if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat>0&&$TopicStat<=3) {
                if($NumReply>=$Settings['hot_topic_num']) {
                        $PreTopicText = "<span style=\"font-weight: bold;\">Pinned: </span>";
                        $PreTopic=$ThemeSet['HotPinClosedTopic']; }
@@ -473,7 +500,7 @@ if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat==0) {
                $PreTopic=$ThemeSet['MovedHotPinTopic']; }
        if($NumReply<$Settings['hot_topic_num']) {
                $PreTopic=$ThemeSet['MovedPinTopic']; } }
-if ($TopicStat>=0&&$TopicStat<=3&&$PinnedTopic==0) {
+if ($TopicStat>0&&$TopicStat<=3&&$PinnedTopic==0) {
        if($NumReply>=$Settings['hot_topic_num']) {
                $PreTopic=$ThemeSet['MovedHotClosedTopic']; }
        if($NumReply<$Settings['hot_topic_num']) {
@@ -483,7 +510,7 @@ if ($PinnedTopic==0&&$TopicStat==0) {
                        $PreTopic=$ThemeSet['MovedHotTopic']; }
                if($NumReply<$Settings['hot_topic_num']) {
                        $PreTopic=$ThemeSet['MovedTopicIcon']; } }
-if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat>=0&&$TopicStat<=3) {
+if ($PinnedTopic>0&&$PinnedTopic<3&&$TopicStat>0&&$TopicStat<=3) {
                if($NumReply>=$Settings['hot_topic_num']) {
                        $PreTopic=$ThemeSet['MovedHotPinClosedTopic']; }
                if($NumReply<$Settings['hot_topic_num']) {
@@ -517,7 +544,7 @@ echo "<span>".$UsersName."</span>"; }
 <div class="DivTopics">&nbsp;</div>
 <?php
 sql_free_result($result); }
-if((GMTimeStamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&($_GET['act']=="create"||$_GET['act']=="maketopic")) { 
+if(($utccurtime->getTimestamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&($_GET['act']=="create"||$_GET['act']=="maketopic")) { 
 $_GET['act'] = "view"; $_POST['act'] = null; 
 redirect("refresh",$rbasedir.url_maker($exfile['forum'],$Settings['file_ext'],"act=view&id=".$ForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr['forum'],$exqstr['forum'],FALSE),"3"); ?>
 <div class="Table1Border">
@@ -588,29 +615,29 @@ $_SESSION['UserFormID'] = $UFID;
 <td class="TableColumn3" style="width: 15%; vertical-align: middle; text-align: center;">
 <div style="width: 100%; height: 160px; overflow: auto;">
 <table style="width: 100%; text-align: center;"><?php
-$renee_query=sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."smileys\" WHERE \"Display\"='yes'", array(null));
-$renee_result=sql_query($renee_query,$SQLStat);
-$renee_num=sql_num_rows($renee_result);
-$renee_s=0; $SmileRow=0; $SmileCRow=0;
-while ($renee_s < $renee_num) { ++$SmileRow;
-$FileName=sql_result($renee_result,$renee_s,"FileName");
-$SmileName=sql_result($renee_result,$renee_s,"SmileName");
-$SmileText=sql_result($renee_result,$renee_s,"SmileText");
-$SmileDirectory=sql_result($renee_result,$renee_s,"Directory");
-$ShowSmile=sql_result($renee_result,$renee_s,"Display");
-$ReplaceType=sql_result($renee_result,$renee_s,"ReplaceCI");
+$melanie_query=sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."smileys\" WHERE \"Display\"='yes'", array(null));
+$melanie_result=sql_query($melanie_query,$SQLStat);
+$melanie_num=sql_num_rows($melanie_result);
+$melanie_p=0; $SmileRow=0; $SmileCRow=0;
+while ($melanie_p < $melanie_num) { ++$SmileRow;
+$FileName=sql_result($melanie_result,$melanie_p,"FileName");
+$SmileName=sql_result($melanie_result,$melanie_p,"SmileName");
+$SmileText=sql_result($melanie_result,$melanie_p,"SmileText");
+$SmileDirectory=sql_result($melanie_result,$melanie_p,"Directory");
+$ShowSmile=sql_result($melanie_result,$melanie_p,"Display");
+$ReplaceType=sql_result($melanie_result,$melanie_p,"ReplaceCI");
 if($SmileRow==1) { ?><tr>
        <?php } if($SmileRow<5) { ++$SmileCRow; ?>
        <td><img src="<?php echo $SmileDirectory."".$FileName; ?>" style="vertical-align: middle; border: 0px; cursor: pointer;" title="<?php echo $SmileName; ?>" alt="<?php echo $SmileName; ?>" onclick="addsmiley('TopicPost','&nbsp;<?php echo htmlspecialchars($SmileText, ENT_QUOTES, $Settings['charset']); ?>&nbsp;')" /></td>
        <?php } if($SmileRow==5) { ++$SmileCRow; ?>
        <td><img src="<?php echo $SmileDirectory."".$FileName; ?>" style="vertical-align: middle; border: 0px; cursor: pointer;" title="<?php echo $SmileName; ?>" alt="<?php echo $SmileName; ?>" onclick="addsmiley('TopicPost','&nbsp;<?php echo htmlspecialchars($SmileText, ENT_QUOTES, $Settings['charset']); ?>&nbsp;')" /></td></tr>
        <?php $SmileCRow=0; $SmileRow=0; }
-++$renee_s; }
+++$melanie_p; }
 if($SmileCRow<5&&$SmileCRow!=0) {
 $SmileCRowL = 5 - $SmileCRow;
 echo "<td colspan=\"".$SmileCRowL."\">&nbsp;</td></tr>"; }
 echo "</table>";
-sql_free_result($renee_result);
+sql_free_result($melanie_result);
 ?></div></td>
 <td class="TableColumn3" style="width: 85%;">
 <form style="display: inline;" method="post" id="MkTopicForm" action="<?php echo url_maker($exfile['forum'],$Settings['file_ext'],"act=maketopic&id=".$ForumID,$Settings['qstr'],$Settings['qsep'],$prexqstr['forum'],$exqstr['forum']); ?>">
@@ -640,6 +667,7 @@ sql_free_result($renee_result);
 <?php } ?>
 <input type="hidden" name="act" value="maketopics" style="display: none;" />
 <input type="hidden" style="display: none;" name="fid" value="<?php echo $UFID; ?>" />
+<input type="hidden" style="display: none;" name="ubid" value="<?php echo $Settings['BoardUUID']; ?>" />
 <?php if($_SESSION['UserGroup']!=$Settings['GuestGroup']) { ?>
 <input type="hidden" name="GuestName" value="null" style="display: none;" />
 <?php } ?>
@@ -720,6 +748,12 @@ if (PhpCaptcha::Validate($_POST['signcode'])) {
        <br />Sorry the referering url dose not match our host name.<br />
        </span>&nbsp;</td>
 </tr>
+<?php } if($_POST['ubid']!=$Settings['BoardUUID']) { $Error="Yes";  ?>
+<tr>
+       <td><span class="TableMessage">
+       <br />Sorry the referering url dose not match our host name.<br />
+       </span>&nbsp;</td>
+</tr>
 <?php } if($_SESSION['UserGroup']==$Settings['GuestGroup']&&
        pre_strlen($_POST['GuestName'])>"30") { $Error="Yes"; ?>
 <tr>
@@ -760,18 +794,18 @@ setcookie("GuestName", $_POST['GuestName'], time() + (7 * 86400), $cbasedir, $co
 $_SESSION['GuestName']=$_POST['GuestName']; } }
 /*    <_<  iWordFilter  >_>      
    by Kazuki Przyborowski - Cool Dude 2k */
-$katarzynaqy=sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."wordfilter\"", array(null));
-$katarzynart=sql_query($katarzynaqy,$SQLStat);
-$katarzynanm=sql_num_rows($katarzynart);
-$katarzynas=0;
-while ($katarzynas < $katarzynanm) {
-$Filter=sql_result($katarzynart,$katarzynas,"FilterWord");
-$Replace=sql_result($katarzynart,$katarzynas,"Replacement");
-$CaseInsensitive=sql_result($katarzynart,$katarzynas,"CaseInsensitive");
+$melanieqy=sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."wordfilter\"", array(null));
+$melaniert=sql_query($melanieqy,$SQLStat);
+$melanienm=sql_num_rows($melaniert);
+$melanies=0;
+while ($melanies < $melanienm) {
+$Filter=sql_result($melaniert,$melanies,"FilterWord");
+$Replace=sql_result($melaniert,$melanies,"Replacement");
+$CaseInsensitive=sql_result($melaniert,$melanies,"CaseInsensitive");
 if($CaseInsensitive=="on") { $CaseInsensitive = "yes"; }
 if($CaseInsensitive=="off") { $CaseInsensitive = "no"; }
 if($CaseInsensitive!="yes"||$CaseInsensitive!="no") { $CaseInsensitive = "no"; }
-$WholeWord=sql_result($katarzynart,$katarzynas,"WholeWord");
+$WholeWord=sql_result($melaniert,$melanies,"WholeWord");
 if($WholeWord=="on") { $WholeWord = "yes"; }
 if($WholeWord=="off") { $WholeWord = "no"; }
 if($WholeWord!="yes"&&$WholeWord!="no") { $WholeWord = "no"; }
@@ -788,7 +822,7 @@ $_POST['TopicPost'] = preg_replace("/".$Filter."/", $Replace, $_POST['TopicPost'
 if($CaseInsensitive=="yes"&&$WholeWord!="yes") {
 $_POST['TopicDesc'] = preg_replace("/".$Filter."/i", $Replace, $_POST['TopicDesc']); 
 $_POST['TopicPost'] = preg_replace("/".$Filter."/i", $Replace, $_POST['TopicPost']); }
-++$katarzynas; } sql_free_result($katarzynart);
+++$melanies; } sql_free_result($melaniert);
 $lonewolfqy=sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."restrictedwords\" WHERE \"RestrictedTopicName\"='yes' or \"RestrictedUserName\"='yes'", array(null));
 $lonewolfrt=sql_query($lonewolfqy,$SQLStat);
 $lonewolfnm=sql_num_rows($lonewolfrt);
@@ -892,7 +926,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
        <br />Click <a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>">here</a> to goto index page.<br />&nbsp;
        </span><br /></td>
 </tr>
-<?php } if ($Error!="Yes") { $LastActive = GMTimeStamp();
+<?php } if ($Error!="Yes") { $LastActive = $utccurtime->getTimestamp();
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($MyUserID));
 $reresult=sql_query($requery,$SQLStat);
 $renum=sql_num_rows($reresult);
@@ -921,7 +955,7 @@ $query = sql_pre_query("INSERT INTO \"".$Settings['sqltable']."posts\" (\"TopicI
 "(".$topicid.", %i, %i, %i, '%s', %i, %i, 0, '', '%s', '%s', '%s', '0')", array($ForumID,$ForumCatID,$User1ID,$User1Name,$LastActive,$LastActive,$_POST['TopicPost'],$_POST['TopicDesc'],$User1IP));
 sql_query($query,$SQLStat);
 $postid = sql_get_next_id($Settings['sqltable'],"posts",$SQLStat);
-$_SESSION['LastPostTime'] = GMTimeStamp() + $GroupInfo['FloodControl'];
+$_SESSION['LastPostTime'] = $utccurtime->getTimestamp() + $GroupInfo['FloodControl'];
 if($User1ID!=0&&$User1ID!=-1) {
 $queryupd = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"LastActive\"=%i,\"IP\"='%s',\"PostCount\"=%i,\"LastPostTime\"=%i WHERE \"id\"=%i", array($LastActive,$User1IP,$NewPostCount,$_SESSION['LastPostTime'],$User1ID));
 sql_query($queryupd,$SQLStat); }
@@ -960,4 +994,122 @@ if($pstring!=null||$_GET['act']!="view"||
 ?>
 <?php /*<div class="DivPageLinks">&nbsp;</div>*/ ?>
 <div class="DivTable2">&nbsp;</div>
-<?php } } } ?>
+<?php } 
+$uviewlcuttime = $utccurtime->getTimestamp();
+$uviewltime = $uviewlcuttime - ini_get("session.gc_maxlifetime");
+if($InSubForum==0) {
+$uviewlquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"session_id\"<>'%s' AND (\"serialized_data\" LIKE '%s' OR \"serialized_data\" LIKE '%s') ORDER BY \"expires\" DESC", array($uviewltime, session_id(), "%currentforumid:0,".$ForumID.";%", "%currentforumid:".$ForumID.",%")); }
+if($InSubForum!=0) {
+$uviewlquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"session_id\"<>'%s' AND (\"serialized_data\" LIKE '%s' OR \"serialized_data\" LIKE '%s') ORDER BY \"expires\" DESC", array($uviewltime, session_id(), "%currentforumid:".$InSubForum.",".$ForumID.";%", "%currentforumid:0,".$ForumID.";")); }
+$uviewlresult=sql_query($uviewlquery,$SQLStat);
+$uviewlnum=sql_num_rows($uviewlresult);
+$uviewli=0; $uviewlmn = 0; $uviewlgn = 0; $uviewlan = 0; $uviewlmbn = 0;
+$MembersViewList = null; $GuestsOnline = null;
+while ($uviewli < $uviewlnum) {
+$session_data=sql_result($uviewlresult,$uviewli,"session_data"); 
+$serialized_data=sql_result($uviewlresult,$uviewli,"serialized_data");
+$session_user_agent=sql_result($uviewlresult,$uviewli,"user_agent"); 
+$session_ip_address=sql_result($uviewlresult,$uviewli,"ip_address");
+//$UserSessInfo = unserialize_session($session_data);
+$UserSessInfo = unserialize($serialized_data);
+if(!isset($UserSessInfo['UserGroup'])) { $UserSessInfo['UserGroup'] = $Settings['GuestGroup']; }
+$AmIHiddenUser = "no";
+$user_agent_check = false;
+if(user_agent_check($session_user_agent)) {
+       $user_agent_check = user_agent_check($session_user_agent); }
+if($UserSessInfo['UserGroup']!=$Settings['GuestGroup']||$user_agent_check!==false) {
+$PreAmIHiddenUser = GetUserName($UserSessInfo['UserID'],$Settings['sqltable'],$SQLStat);
+$AmIHiddenUser = $PreAmIHiddenUser['Hidden'];
+if(($AmIHiddenUser=="no"&&$UserSessInfo['UserID']>0)||$user_agent_check!==false) {
+if($uviewlmbn>0) { $MembersViewList .= ", "; }
+if($user_agent_check===false) {
+$uatitleadd = null;
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
+$MembersViewList .= "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$UserSessInfo['UserID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$UserSessInfo['MemberName']."</a>"; 
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$MembersViewList .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
+++$uviewlmn; ++$uviewlmbn; }
+if($user_agent_check!==false) {
+$uatitleadd = null;
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
+$MembersViewList .= "<span".$uatitleadd.">".$user_agent_check."</span>"; 
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$MembersViewList .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
+++$uviewlmbn; } }
+if($UserSessInfo['UserID']<=0||$AmIHiddenUser=="yes") {
+if($user_agent_check===false) {
+++$uviewlan; } } }
+if($UserSessInfo['UserGroup']==$Settings['GuestGroup']) {
+/*$uatitleadd = null;
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
+$GuestsViewList .= "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$MemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$MemList['Name']."</a>";
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$GuestsViewList .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; } */
+++$uviewlgn; }
+++$uviewli; }
+if(!isset($_SESSION['UserGroup'])) { $_SESSION['UserGroup'] = $Settings['GuestGroup']; }
+$AmIHiddenUser = "no";
+$user_agent_check = false;
+if(user_agent_check($_SERVER['HTTP_USER_AGENT'])) {
+       $user_agent_check = user_agent_check($_SERVER['HTTP_USER_AGENT']); }
+if($_SESSION['UserGroup']!=$Settings['GuestGroup']||$user_agent_check!==false) {
+$PreAmIHiddenUser = GetUserName($_SESSION['UserID'],$Settings['sqltable'],$SQLStat);
+$AmIHiddenUser = $PreAmIHiddenUser['Hidden'];
+if(($AmIHiddenUser=="no"&&$_SESSION['UserID']>0)||$user_agent_check!==false) {
+if($uviewlmbn>0) { $MembersViewList = ", ".$MembersViewList; }
+if($user_agent_check===false) {
+$uatitleadd = null;
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, $Settings['charset'])."\""; }
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$MembersViewList = " (<a title=\"".$_SERVER['REMOTE_ADDR']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$_SERVER['REMOTE_ADDR'])."\">".$_SERVER['REMOTE_ADDR']."</a>)".$MembersViewList; }
+$MembersViewList = "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$_SESSION['UserID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$_SESSION['MemberName']."</a>".$MembersViewList; 
+++$uviewlmn; ++$uviewlmbn; }
+if($user_agent_check!==false) {
+$uatitleadd = null;
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$MembersViewList = " (<a title=\"".$_SERVER['REMOTE_ADDR']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$_SERVER['REMOTE_ADDR'])."\">".$_SERVER['REMOTE_ADDR']."</a>)".$MembersViewList; }
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, $Settings['charset'])."\""; }
+$MembersViewList = "<span".$uatitleadd.">".$user_agent_check."</span>".$MembersViewList; 
+++$uviewlmbn; } }
+if($_SESSION['UserID']<=0||$AmIHiddenUser=="yes") {
+if($user_agent_check===false) {
+++$uviewlan; } } }
+if($_SESSION['UserGroup']==$Settings['GuestGroup']) {
+/*$uatitleadd = null;
+if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, $Settings['charset'])."\""; }
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$GuestsViewList = " (<a title=\"".$_SERVER['REMOTE_ADDR']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$_SERVER['REMOTE_ADDR'])."\">".$_SERVER['REMOTE_ADDR']."</a>)".$GuestsViewList; }
+$GuestsViewList = "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$MemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$MemList['Name']."</a>".$GuestsViewList; */
+++$uviewlgn; }
+++$uviewlnum;
+?>
+<div class="StatsBorder">
+<?php if($ThemeSet['TableStyle']=="div") { ?>
+<div class="TableStatsRow1">
+<span style="text-align: left;">
+<?php echo $ThemeSet['TitleIcon']; ?><a href="<?php echo url_maker($exfile[$ForumType],$Settings['file_ext'],"act=view&id=".$ForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr[$ForumType],$exqstr[$ForumType]); ?>">Forum Statistics</a></span></div>
+<?php } ?>
+<table id="BoardStats" class="TableStats1">
+<?php if($ThemeSet['TableStyle']=="table") { ?>
+<tr class="TableStatsRow1">
+<td class="TableStatsColumn1" colspan="2"><span style="text-align: left;">
+<?php echo $ThemeSet['TitleIcon']; ?><a href="<?php echo url_maker($exfile[$ForumType],$Settings['file_ext'],"act=view&id=".$ForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr[$ForumType],$exqstr[$ForumType]); ?>">Forum Statistics</a></span>
+</td>
+</tr><?php } ?>
+<tr id="Stats1" class="TableStatsRow2">
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;"><?php echo $uviewlnum; ?> users viewing forum</td>
+</tr>
+<tr class="TableStatsRow3" id="Stats2">
+<td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
+<?php echo $ThemeSet['BoardStatsIcon']; ?></div></td>
+<td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
+&nbsp;<span style="font-weight: bold;"><?php echo $uviewlgn; ?></span> guests, <span style="font-weight: bold;"><?php echo $uviewlmn; ?></span> members, <span style="font-weight: bold;"><?php echo $uviewlan; ?></span> anonymous members <br />
+<?php if($MembersViewList!=null) { ?>&nbsp;<?php echo $MembersViewList."\n<br />"; } ?>
+</div></td>
+</tr>
+<tr id="Stats7" class="TableStatsRow4">
+<td class="TableStatsColumn4" colspan="2">&nbsp;</td>
+</tr>
+</table></div>
+<div class="DivStats">&nbsp;</div>
+<?php } } ?>