ob_start("ob_gzhandler");
require "include/bittorrent.php";
dbconn(false);
loggedinorreturn();
$action = $_GET["action"];
function catch_up()
{
global $CURUSER;
$userid = $CURUSER["id"];
$res = mysql_query("SELECT id, lastpost FROM topics") or sqlerr(__FILE__, __LINE__);
while ($arr = mysql_fetch_assoc($res))
{
$topicid = $arr["id"];
$postid = $arr["lastpost"];
$r = mysql_query("SELECT id,lastpostread FROM readposts WHERE userid=$userid and topicid=$topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($r) == 0)
mysql_query("INSERT INTO readposts (userid, topicid, lastpostread) VALUES($userid, $topicid, $postid)") or sqlerr(__FILE__, __LINE__);
else
{
$a = mysql_fetch_assoc($r);
if ($a["lastpostread"] < $postid)
mysql_query("UPDATE readposts SET lastpostread=$postid WHERE id=" . $a["id"]) or sqlerr(__FILE__, __LINE__);
}
}
}
//-------- Returns the minimum read/write class levels of a forum
function get_forum_access_levels($forumid)
{
$res = mysql_query("SELECT minclassread, minclasswrite, minclasscreate FROM forums WHERE id=$forumid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
return false;
$arr = mysql_fetch_assoc($res);
return array("read" => $arr["minclassread"], "write" => $arr["minclasswrite"], "create" => $arr["minclasscreate"]);
}
//-------- Returns the forum ID of a topic, or false on error
function get_topic_forum($topicid)
{
$res = mysql_query("SELECT forumid FROM topics WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
return false;
$arr = mysql_fetch_row($res);
return $arr[0];
}
//-------- Returns the ID of the last post of a forum
function update_topic_last_post($topicid)
{
$res = mysql_query("SELECT id FROM posts WHERE topicid=$topicid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res) or die("No post found");
$postid = $arr[0];
mysql_query("UPDATE topics SET lastpost=$postid WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
}
function get_forum_last_post($forumid)
{
$res = mysql_query("SELECT lastpost FROM topics WHERE forumid=$forumid ORDER BY lastpost DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$postid = $arr[0];
if ($postid)
return $postid;
else
return 0;
}
//-------- Inserts a quick jump menu
function insert_quick_jump_menu($currentforum = 0)
{
print("
\n");
}
//-------- Inserts a compose frame
function insert_compose_frame($id, $newtopic = true, $quote = false)
{
global $maxsubjectlength, $CURUSER;
if ($newtopic)
{
$res = mysql_query("SELECT name FROM forums WHERE id=$id") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res) or die("Bad forum id");
$forumname = $arr["name"];
print("
\n");
end_frame();
//------ Get 10 last posts if this is a reply
if (!$newtopic)
{
$postres = mysql_query("SELECT * FROM posts WHERE topicid=$id ORDER BY id DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);
begin_frame("10 last posts, in reverse order");
while ($post = mysql_fetch_assoc($postres))
{
//-- Get poster details
$userres = mysql_query("SELECT * FROM users WHERE id=" . $post["userid"] . " LIMIT 1") or sqlerr(__FILE__, __LINE__);
$user = mysql_fetch_assoc($userres);
$avatar = ($CURUSER["avatars"] == "yes" ? htmlspecialchars($user["avatar"]) : "");
// $avatar = $user["avatar"];
if (!$avatar)
$avatar = "pic/default_avatar.gif";
begin_table(true);
$body = format_comment($arr["body"]);
if (is_valid_id($arr['editedby']))
{
$res2 = mysql_query("SELECT username FROM users WHERE id=$arr[editedby]");
if (mysql_num_rows($res2) == 1)
{
$arr2 = mysql_fetch_assoc($res2);
$body .= "
\n");
end_table();
}
end_frame();
}
insert_quick_jump_menu();
}
//-------- Global variables
$maxsubjectlength = 400;
$postsperpage = $CURUSER["postsperpage"];
if (!$postsperpage) $postsperpage = 25;
//-------- Action: New topic
if ($action == "newtopic")
{
$forumid = $_GET["forumid"];
if (!is_valid_id($forumid))
die;
stdhead("New topic");
begin_main_frame();
insert_compose_frame($forumid);
end_main_frame();
stdfoot();
die;
}
//-------- Action: Post
if ($action == "post")
{
$forumid = 0 + $_POST["forumid"];
$topicid = 0 + $_POST["topicid"];
if (!is_valid_id($forumid) && !is_valid_id($topicid))
stderr("Error", "Bad forum or topic ID.");
$newtopic = $forumid > 0;
$subject = $_POST["subject"];
if ($newtopic)
{
$subject = trim($subject);
if (!$subject)
stderr("Error", "You must enter a subject.");
if (strlen($subject) > $maxsubjectlength)
stderr("Error", "Subject is limited to $maxsubjectlength characters.");
}
else
$forumid = get_topic_forum($topicid) or die("Bad topic ID");
//------ Make sure sure user has write access in forum
$arr = get_forum_access_levels($forumid) or die("Bad forum ID");
if (get_user_class() < $arr["write"] || ($newtopic && get_user_class() < $arr["create"]))
stderr("Error", "Permission denied.");
$body = trim($_POST["body"]);
if ($body == "")
stderr("Error", "No body text.");
$userid = $CURUSER["id"];
if ($newtopic)
{
//---- Create topic
$subject = sqlesc($subject);
mysql_query("INSERT INTO topics (userid, forumid, subject) VALUES($userid, $forumid, $subject)") or sqlerr(__FILE__, __LINE__);
$topicid = mysql_insert_id() or stderr("Error", "No topic ID returned");
}
else
{
//---- Make sure topic exists and is unlocked
$res = mysql_query("SELECT * FROM topics WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res) or die("Topic id n/a");
if ($arr["locked"] == 'yes' && get_user_class() < UC_MODERATOR)
stderr("Error", "This topic is locked.");
//---- Get forum ID
$forumid = $arr["forumid"];
}
//------ Insert post
$added = "'" . get_date_time() . "'";
$body = sqlesc($body);
mysql_query("INSERT INTO posts (topicid, userid, added, body) " .
"VALUES($topicid, $userid, $added, $body)") or sqlerr(__FILE__, __LINE__);
$postid = mysql_insert_id() or die("Post id n/a");
//------ Update topic last post
update_topic_last_post($topicid);
//------ All done, redirect user to the post
$headerstr = "Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid&page=last";
if ($newtopic)
header($headerstr);
else
header("$headerstr#$postid");
die;
}
//-------- Action: View topic
if ($action == "viewtopic")
{
$topicid = $_GET["topicid"];
$page = $_GET["page"];
if (!is_valid_id($topicid))
die;
$userid = $CURUSER["id"];
//------ Get topic info
$res = mysql_query("SELECT * FROM topics WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res) or stderr("Forum error", "Topic not found");
$locked = ($arr["locked"] == 'yes');
$subject = $arr["subject"];
$sticky = $arr["sticky"] == "yes";
$forumid = $arr["forumid"];
//------ Update hits column
mysql_query("UPDATE topics SET views = views + 1 WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
//------ Get forum
$res = mysql_query("SELECT * FROM forums WHERE id=$forumid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res) or die("Forum = NULL");
$forum = $arr["name"];
if ($CURUSER["class"] < $arr["minclassread"])
stderr("Error", "You are not permitted to view this topic.");
//------ Get post count
$res = mysql_query("SELECT COUNT(*) FROM posts WHERE topicid=$topicid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$postcount = $arr[0];
//------ Make page menu
$pagemenu = "
\n";
$perpage = $postsperpage;
$pages = ceil($postcount / $perpage);
if ($page[0] == "p")
{
$findpost = substr($page, 1);
$res = mysql_query("SELECT id FROM posts WHERE topicid=$topicid ORDER BY added") or sqlerr(__FILE__, __LINE__);
$i = 1;
while ($arr = mysql_fetch_row($res))
{
if ($arr[0] == $findpost)
break;
++$i;
}
$page = ceil($i / $perpage);
}
if ($page == "last")
$page = $pages;
else
{
if($page < 1)
$page = 1;
elseif ($page > $pages)
$page = $pages;
}
$offset = $page * $perpage - $perpage;
for ($i = 1; $i <= $pages; ++$i)
{
if ($i == $page)
$pagemenu .= "$i\n";
else
$pagemenu .= "$i\n";
}
if ($page == 1)
$pagemenu .= " << Prev";
else
$pagemenu .= " << Prev";
$pagemenu .= " ";
if ($page == $pages)
$pagemenu .= "Next >>
\n";
else
$pagemenu .= "Next >>\n";
//------ Get posts
$res = mysql_query("SELECT * FROM posts WHERE topicid=$topicid ORDER BY id LIMIT $offset,$perpage") or sqlerr(__FILE__, __LINE__);
stdhead("Forums :: $subject");
print("
\n");
end_table();
}
//------ Mod options
if (get_user_class() >= UC_MODERATOR)
{
attach_frame();
$res = mysql_query("SELECT id,name,minclasswrite FROM forums ORDER BY name") or sqlerr(__FILE__, __LINE__);
print("
\n");
//------ Forum quick jump drop-down
insert_quick_jump_menu($forumid);
stdfoot();
die;
}
//-------- Action: Quote
if ($action == "quotepost")
{
$topicid = $_GET["topicid"];
if (!is_valid_id($topicid))
stderr("Error", "Invalid topic ID.");
stdhead("Post");
begin_main_frame();
insert_compose_frame($topicid, false, true);
end_main_frame();
stdfoot();
die;
}
//-------- Action: Reply
if ($action == "reply")
{
$topicid = $_GET["topicid"];
if (!is_valid_id($topicid))
die;
stdhead("Post reply");
begin_main_frame();
insert_compose_frame($topicid, false);
end_main_frame();
stdfoot();
die;
}
//-------- Action: Move topic
if ($action == "movetopic")
{
$forumid = $_POST["forumid"];
$topicid = $_GET["topicid"];
if (!is_valid_id($forumid) || !is_valid_id($topicid) || get_user_class() < UC_MODERATOR)
die;
// Make sure topic and forum is valid
$res = @mysql_query("SELECT minclasswrite FROM forums WHERE id=$forumid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
stderr("Error", "Forum not found.");
$arr = mysql_fetch_row($res);
if (get_user_class() < $arr[0])
die;
$res = @mysql_query("SELECT subject,forumid FROM topics WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
stderr("Error", "Topic not found.");
$arr = mysql_fetch_assoc($res);
if ($arr["forumid"] != $forumid)
@mysql_query("UPDATE topics SET forumid=$forumid WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
// Redirect to forum page
header("Location: $BASEURL/forums.php?action=viewforum&forumid=$forumid");
die;
}
//-------- Action: Delete topic
if ($action == "deletetopic")
{
$topicid = $_GET["topicid"];
$forumid = $_GET["forumid"];
if (!is_valid_id($topicid) || get_user_class() < UC_MODERATOR)
die;
$sure = $_GET["sure"];
if (!$sure)
{
stderr("Delete topic", "Sanity check: You are about to delete a topic. Click\n" .
"here if you are sure.");
}
mysql_query("DELETE FROM topics WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
mysql_query("DELETE FROM posts WHERE topicid=$topicid") or sqlerr(__FILE__, __LINE__);
header("Location: $BASEURL/forums.php?action=viewforum&forumid=$forumid");
die;
}
//-------- Action: Edit post
if ($action == "editpost")
{
$postid = $_GET["postid"];
if (!is_valid_id($postid))
die;
$res = mysql_query("SELECT * FROM posts WHERE id=$postid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
stderr("Error", "No post with ID $postid.");
$arr = mysql_fetch_assoc($res);
$res2 = mysql_query("SELECT locked FROM topics WHERE id = " . $arr["topicid"]) or sqlerr(__FILE__, __LINE__);
$arr2 = mysql_fetch_assoc($res2);
if (mysql_num_rows($res) != 1)
stderr("Error", "Invalid topic ID $topicid.");
$locked = ($arr2["locked"] == 'yes');
if (($CURUSER["id"] != $arr["userid"] || $locked) && get_user_class() < UC_MODERATOR)
stderr("Error", "Denied!");
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$body = $_POST['body'];
if ($body == "")
stderr("Error", "Body cannot be empty!");
$body = sqlesc($body);
$editedat = sqlesc(get_date_time());
mysql_query("UPDATE posts SET body=$body, editedat=$editedat, editedby=$CURUSER[id] WHERE id=$postid") or sqlerr(__FILE__, __LINE__);
$returnto = $_POST["returnto"];
if ($returnto != "")
{
$returnto .= "&page=p$postid#$postid";
header("Location: $returnto");
}
else
stderr("Success", "Post was edited successfully.");
}
stdhead();
print("
Edit Post
\n");
print("
\n");
print("\n");
print("
\n");
print("
\n");
print("
\n");
print("
\n");
print("
\n");
stdfoot();
die;
}
//-------- Action: Delete post
if ($action == "deletepost")
{
$postid = $_GET["postid"];
$sure = $_GET["sure"];
if (get_user_class() < UC_MODERATOR || !is_valid_id($postid))
die;
//------- Get topic id
$res = mysql_query("SELECT topicid FROM posts WHERE id=$postid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res) or stderr("Error", "Post not found");
$topicid = $arr[0];
//------- We can not delete the post if it is the only one of the topic
$res = mysql_query("SELECT COUNT(*) FROM posts WHERE topicid=$topicid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
if ($arr[0] < 2)
stderr("Error", "Can't delete post; it is the only post of the topic. You should\n" .
"delete the topic instead.\n");
//------- Get the id of the last post before the one we're deleting
$res = mysql_query("SELECT id FROM posts WHERE topicid=$topicid AND id < $postid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
$redirtopost = "";
else
{
$arr = mysql_fetch_row($res);
$redirtopost = "&page=p$arr[0]#$arr[0]";
}
//------- Make sure we know what we do :-)
if (!$sure)
{
stderr("Delete post", "Sanity check: You are about to delete a post. Click\n" .
"here if you are sure.");
}
//------- Delete post
mysql_query("DELETE FROM posts WHERE id=$postid") or sqlerr(__FILE__, __LINE__);
//------- Update topic
update_topic_last_post($topicid);
header("Location: $BASEURL/forums.php?action=viewtopic&topicid=$topicid$redirtopost");
die;
}
//-------- Action: Lock topic
if ($action == "locktopic")
{
$forumid = $_GET["forumid"];
$topicid = $_GET["topicid"];
$page = $_GET["page"];
if (!is_valid_id($topicid) || get_user_class() < UC_MODERATOR)
die;
mysql_query("UPDATE topics SET locked='yes' WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
header("Location: $BASEURL/forums.php?action=viewforum&forumid=$forumid&page=$page");
die;
}
//-------- Action: Unlock topic
if ($action == "unlocktopic")
{
$forumid = $_GET["forumid"];
$topicid = $_GET["topicid"];
$page = $_GET["page"];
if (!is_valid_id($topicid) || get_user_class() < UC_MODERATOR)
die;
mysql_query("UPDATE topics SET locked='no' WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
header("Location: $BASEURL/forums.php?action=viewforum&forumid=$forumid&page=$page");
die;
}
//-------- Action: Set locked on/off
if ($action == "setlocked")
{
$topicid = 0 + $_POST["topicid"];
if (!$topicid || get_user_class() < UC_MODERATOR)
die;
$locked = sqlesc($_POST["locked"]);
mysql_query("UPDATE topics SET locked=$locked WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
header("Location: $_POST[returnto]");
die;
}
//-------- Action: Set sticky on/off
if ($action == "setsticky")
{
$topicid = 0 + $_POST["topicid"];
if (!$topicid || get_user_class() < UC_MODERATOR)
die;
$sticky = sqlesc($_POST["sticky"]);
mysql_query("UPDATE topics SET sticky=$sticky WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);
header("Location: $_POST[returnto]");
die;
}
//-------- Action: Rename topic
if ($action == 'renametopic')
{
if (get_user_class() < UC_MODERATOR)
die;
$topicid = $_POST['topicid'];
if (!is_valid_id($topicid))
die;
$subject = $_POST['subject'];
if ($subject == '')
stderr('Error', 'You must enter a new title!');
$subject = sqlesc($subject);
mysql_query("UPDATE topics SET subject=$subject WHERE id=$topicid") or sqlerr();
$returnto = $_POST['returnto'];
if ($returnto)
header("Location: $returnto");
die;
}
//-------- Action: View forum
if ($action == "viewforum")
{
$forumid = $_GET["forumid"];
if (!is_valid_id($forumid))
die;
$page = $_GET["page"];
$userid = $CURUSER["id"];
//------ Get forum name
$res = mysql_query("SELECT name, minclassread FROM forums WHERE id=$forumid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res) or die;
$forumname = $arr["name"];
if (get_user_class() < $arr["minclassread"])
die("Not permitted");
//------ Page links
//------ Get topic count
$perpage = $CURUSER["topicsperpage"];
if (!$perpage) $perpage = 20;
$res = mysql_query("SELECT COUNT(*) FROM topics WHERE forumid=$forumid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$num = $arr[0];
if ($page == 0)
$page = 1;
$first = ($page * $perpage) - $perpage + 1;
$last = $first + $perpage - 1;
if ($last > $num)
$last = $num;
$pages = floor($num / $perpage);
if ($perpage * $pages < $num)
++$pages;
//------ Build menu
$menu = "
\n";
$offset = $first - 1;
//------ Get topics data
$topicsres = mysql_query("SELECT * FROM topics WHERE forumid=$forumid ORDER BY sticky, lastpost DESC LIMIT $offset,$perpage") or
stderr("SQL Error", mysql_error());
stdhead("Forum");
$numtopics = mysql_num_rows($topicsres);
print("
$forumname
\n");
if ($numtopics > 0)
{
print($menu);
print("
");
print("
Topic
Replies
Views
\n" .
"
Author
Last post
\n");
print("
\n");
while ($topicarr = mysql_fetch_assoc($topicsres))
{
$topicid = $topicarr["id"];
$topic_userid = $topicarr["userid"];
$topic_views = $topicarr["views"];
$views = number_format($topic_views);
$locked = $topicarr["locked"] == "yes";
$sticky = $topicarr["sticky"] == "yes";
//---- Get reply count
$res = mysql_query("SELECT COUNT(*) FROM posts WHERE topicid=$topicid") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$posts = $arr[0];
$replies = max(0, $posts - 1);
$tpages = floor($posts / $postsperpage);
if ($tpages * $postsperpage != $posts)
++$tpages;
if ($tpages > 1)
{
$topicpages = " (";
for ($i = 1; $i <= $tpages; ++$i)
$topicpages .= " $i";
$topicpages .= ")";
}
else
$topicpages = "";
//---- Get userID and date of last post
$res = mysql_query("SELECT * FROM posts WHERE topicid=$topicid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_assoc($res);
$lppostid = 0 + $arr["id"];
$lpuserid = 0 + $arr["userid"];
$lpadded = "" . $arr["added"] . "";
//------ Get name of last poster
$res = mysql_query("SELECT * FROM users WHERE id=$lpuserid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$lpusername = "$arr[username]";
}
else
$lpusername = "unknown[$topic_userid]";
//------ Get author
$res = mysql_query("SELECT username FROM users WHERE id=$topic_userid") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 1)
{
$arr = mysql_fetch_assoc($res);
$lpauthor = "$arr[username]";
}
else
$lpauthor = "unknown[$topic_userid]";
//---- Print row
$r = mysql_query("SELECT lastpostread FROM readposts WHERE userid=$userid AND topicid=$topicid") or sqlerr(__FILE__, __LINE__);
$a = mysql_fetch_row($r);
$new = !$a || $lppostid > $a[0];
$topicpic = ($locked ? ($new ? "lockednew" : "locked") : ($new ? "unlockednew" : "unlocked"));
$subject = ($sticky ? "Sticky: " : "") . "" .
encodehtml($topicarr["subject"]) . "$topicpages";
print("
" .
"
" .
"
\n" .
"$subject
$replies
\n" .
"
$views
$lpauthor
\n" .
"
$lpadded by $lpusername
\n");
print("
\n");
} // while
print("
\n");
print($menu);
} // if
else
print("
No topics found
\n");
print("
\n");
print("
New posts
\n");
print("
" .
"
Locked topic
\n");
print("
\n");
$arr = get_forum_access_levels($forumid) or die;
$maypost = get_user_class() >= $arr["write"] && get_user_class() >= $arr["create"];
if (!$maypost)
print("
You are not permitted to start new topics in this forum.
\n");
print("
\n");
print("
\n");
if ($maypost)
print("
\n");
print("
\n");
insert_quick_jump_menu($forumid);
stdfoot();
die;
}
//-------- Action: View unread posts
if ($action == "viewunread")
{
$userid = $CURUSER['id'];
$maxresults = 25;
$res = mysql_query("SELECT id, forumid, subject, lastpost FROM topics ORDER BY lastpost") or sqlerr(__FILE__, __LINE__);
stdhead();
print("
Topics with unread posts
\n");
$n = 0;
$uc = get_user_class();
while ($arr = mysql_fetch_assoc($res))
{
$topicid = $arr['id'];
$forumid = $arr['forumid'];
//---- Check if post is read
$r = mysql_query("SELECT lastpostread FROM readposts WHERE userid=$userid AND topicid=$topicid") or sqlerr(__FILE__, __LINE__);
$a = mysql_fetch_row($r);
if ($a && $a[0] == $arr['lastpost'])
continue;
//---- Check access & get forum name
$r = mysql_query("SELECT name, minclassread FROM forums WHERE id=$forumid") or sqlerr(__FILE__, __LINE__);
$a = mysql_fetch_assoc($r);
if ($uc < $a['minclassread'])
continue;
++$n;
if ($n > $maxresults)
break;
$forumname = $a['name'];
if ($n == 1)
{
print("
Searched for \"" . htmlspecialchars($keywords) . "\"
\n");
$res = mysql_query("SELECT COUNT(*) FROM posts WHERE MATCH (body) AGAINST ($ekeywords)") or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$hits = 0 + $arr[0];
if ($hits == 0)
print("
Sorry, nothing found!
");
else
{
$pages = 0 + ceil($hits / $perpage);
if ($page > $pages) $page = $pages;
for ($i = 1; $i <= $pages; ++$i)
if ($page == $i)
$pagemenu1 .= "$i\n";
else
$pagemenu1 .= "$i\n";
if ($page == 1)
$pagemenu2 = "<< Prev\n";
else
$pagemenu2 = "<< Prev\n";
$pagemenu2 .= " \n";
if ($page == $pages)
$pagemenu2 .= "Next >>\n";
else
$pagemenu2 .= "Next >>\n";
$offset = ($page * $perpage) - $perpage;
$res = mysql_query("SELECT id, topicid,userid,added FROM posts WHERE MATCH (body) AGAINST ($ekeywords) LIMIT $offset,$perpage") or sqlerr(__FILE__, __LINE__);
$num = mysql_num_rows($res);
print("
$pagemenu1 $pagemenu2
");
print("
\n");
print("
Post
Topic
Forum
Posted by
\n");
for ($i = 0; $i < $num; ++$i)
{
$post = mysql_fetch_assoc($res);
$res2 = mysql_query("SELECT forumid, subject FROM topics WHERE id=$post[topicid]") or
sqlerr(__FILE__, __LINE__);
$topic = mysql_fetch_assoc($res2);
$res2 = mysql_query("SELECT name,minclassread FROM forums WHERE id=$topic[forumid]") or
sqlerr(__FILE__, __LINE__);
$forum = mysql_fetch_assoc($res2);
if ($forum["name"] == "" || $forum["minclassread"] > $CURUSER["class"])
{
--$hits;
continue;
}
$res2 = mysql_query("SELECT username FROM users WHERE id=$post[userid]") or
sqlerr(__FILE__, __LINE__);
$user = mysql_fetch_assoc($res2);
if ($user["username"] == "")
$user["username"] = "[$post[userid]]";
print("