\n";
}
// ***************************** Top of code ********************************
require("../dblogin.php");
if (isset($_GET[login])) {
// **** Display login form
pageheader();
?>
the forums";
} else echo "password verification error";
} else echo "User name $_POST[uname] already exists.";
mysql_free_result($result);
} else if (isset($_GET[userinfo])) {
// **** User info page
// get info from users database
$result = mysql_query("SELECT uname, UNIX_TIMESTAMP(joined) as joindate, logintoken, UNIX_TIMESTAMP(lastlogin) as login FROM users
WHERE idx = '".mysql_real_escape_string($_GET[userinfo])."'") or die (mysql_error());
if (mysql_num_rows($result) != 1) die("no such user");
$userline = mysql_fetch_assoc($result);
mysql_free_result($result);
// get post count, last post
$result = mysql_query("SELECT COUNT(*) AS postcount, UNIX_TIMESTAMP(MAX(postedtime)) as lasttime FROM board WHERE author = '".
mysql_real_escape_string($_GET[userinfo])."'") or die(mysql_error());
$postline = mysql_fetch_assoc($result);
mysql_free_result($result);
pageheader($userline[uname]." user info");
echo "Info for user "$userline[uname]":
";
echo "Joined: ".date($datefmt,$userline[joindate])." ";
echo "Posts: $postline[postcount]";
if ($postline[postcount] > 0) echo ", last posted ".date("$datefmt $timefmt",$postline[lasttime])." ";
if (isset($userline[logintoken]) && $userline[logintoken] != "") echo "Logged in ".date("$datefmt $timefmt",$userline[login])." ";
else if ($userline[login] > 0) echo "Last logged in ".date("$datefmt $timefmt",$userline[login])." ";
else echo "Never logged in. ";
echo " User List";
} else if (isset($_GET[userlist])) {
// **** User list
pageheader("User List");
$result = mysql_query("
SELECT COUNT(*) AS postcount, users.uname AS uname, UNIX_TIMESTAMP(users.joined) AS joined, users.idx AS idx
FROM board, users
WHERE board.author = users.idx
GROUP BY uname
ORDER BY postcount DESC
") or die(mysql_error());
echo "User list:
".mysql_num_rows($result)." users
Name
Post Count
Joined
\n";
while ($line=mysql_fetch_assoc($result)) {
echo "
\n";
} else if (isset($_GET[chpass])) {
// **** Change password form
pageheader();
?>
Change Password:
0) echo "Previous Page";
if ($pageno > 0 && $pageno < floor(($postcount-1)/$postsperpage)) echo " | ";
if ($pageno < floor(($postcount-1)/$postsperpage)) echo "Next Page";
$result = mysql_query("
SELECT board.subject AS subject,
board.message AS message,
board.idx AS idx,
UNIX_TIMESTAMP(board.postedtime) AS postedtime,
UNIX_TIMESTAMP(board.lasttime) AS lasttime,
users.uname AS uname,
users.idx AS uidx
FROM board, users
WHERE board.author = users.idx AND (board.replyto = '".mysql_real_escape_string($_GET[showthread])."' OR board.idx = '".mysql_real_escape_string($_GET[showthread])."')
ORDER BY postedtime ASC
LIMIT $firstonpage,$postsperpage
") or die (mysql_error());
echo "
\n";
$firstpost=1;
while ($line=mysql_fetch_array($result,MYSQL_ASSOC)) {
echo "
";
if ($lastlogin > 0 && $line[lasttime] > $lastlogin) echo "* ";
echo "$line[subject] by $line[uname] at ".date($timefmt,$line[postedtime])." on ".date($datefmt,$line[postedtime])."
\n";
if ($pageno > 0) echo "Previous Page";
if ($pageno > 0 && $pageno < floor(($postcount-1)/$postsperpage)) echo " | ";
if ($pageno < floor(($postcount-1)/$postsperpage)) echo "Next Page";
echo " ";
echo "Show all threads
";
echo "Reply to this thread: ";
NewPostForm($_GET[showthread]);
mysql_free_result($result);
} else if (isset($_GET['addpost'])) {
// **** Add a post
pageheader();
if (isset($_POST[author]) && $_POST[author]!='' && isset($_POST[pass]) && $_POST[pass]!='') {
$result=mysql_query("
SELECT idx
FROM users
WHERE uname = '".mysql_real_escape_string($_POST[author])."' AND pass = '".mysql_real_escape_string($_POST[pass])."'
") or die("auth attempt: ".mysql_error());
} else if (isset($_COOKIE[$cookie_uname]) && isset($_COOKIE[$cookie_token])) {
$result=mysql_query("
SELECT idx
FROM users
WHERE uname = '".mysql_real_escape_string($_COOKIE[$cookie_uname])."' AND logintoken = '".mysql_real_escape_string($_COOKIE[$cookie_token])."'
") or die("auth attempt: ".mysql_error());
} else die("Authentication failed (incomplete data).");
if (mysql_num_rows($result) != 1) die("Authentication failed.");
$line=mysql_fetch_array($result,MYSQL_ASSOC);
if ($_POST[inresponseto]=="0" && (!isset($_POST[subject]) || $_POST[subject]=="" || ctype_space($_POST[subject]))) die("Cannot start thread with empty subject");
$insres = mysql_query("
INSERT INTO board
VALUES(NULL,NOW(),NOW(),'".mysql_real_escape_string($line[idx])."','".mysql_real_escape_string($_POST[inresponseto])."',
'".mysql_real_escape_string(htmlspecialchars($_POST[subject],ENT_QUOTES))."',
'".mysql_real_escape_string(preg_replace($tags_search,$tags_replace,htmlspecialchars(stripslashes($_POST[message]),ENT_QUOTES)))."',
'".mysql_real_escape_string($_SERVER[REMOTE_ADDR])."')
") or die ("post error: ".mysql_error());
echo "Added. ";
if ($_POST[inresponseto] != 0) {
$upres = mysql_query("
UPDATE board
SET lasttime = NOW()
WHERE idx = '".mysql_real_escape_string($_POST[inresponseto])."'
LIMIT 1
") or die("update error: ".mysql_error());
echo "Return to thread ";
} echo "Return to forum";
} else if (isset($_GET['editpost'])) {
// **** Edit a post
pageheader();
$posttoedit = intval($_GET['editpost']);
$result = mysql_query("
SELECT author,subject,message
FROM board
WHERE idx = '$posttoedit'") or die(mysql_error());
if (mysql_numrows($result) == 0) die("no such post");
$line = mysql_fetch_assoc($result);
mysql_free_result($result);
EditPostForm($posttoedit,preg_replace($tags_decode_search,$tags_decode_replace,htmlspecialchars_decode($line[message],ENT_QUOTES)),$line[subject]);
} else if (isset($_GET['editpost2'])) {
// **** Commit an edited post
pageheader();
$posttoedit = intval($_POST[posttoupdate]);
// look up what post this reponds to and when it was first posted
$result = mysql_query("SELECT replyto, UNIX_TIMESTAMP(postedtime) FROM board WHERE idx = '$posttoedit' LIMIT 1") or die(mysql_error());
$line = mysql_fetch_assoc($result);
$inresponseto = intval($line[replyto]);
if (time()-$line["UNIX_TIMESTAMP(postedtime)"] >= $editexpire) die("edit time for this post has expired ($editexpire seconds)");
mysql_free_result($result);
if (isset($_POST[author]) && $_POST[author]!='' && isset($_POST[pass]) && $_POST[pass]!='') {
$result=mysql_query("
SELECT idx
FROM users
WHERE uname = '".mysql_real_escape_string($_POST[author])."' AND pass = '".mysql_real_escape_string($_POST[pass])."'
") or die("auth attempt: ".mysql_error());
} else if (isset($_COOKIE[$cookie_uname]) && isset($_COOKIE[$cookie_token])) {
$result=mysql_query("
SELECT idx
FROM users
WHERE uname = '".mysql_real_escape_string($_COOKIE[$cookie_uname])."' AND logintoken = '".mysql_real_escape_string($_COOKIE[$cookie_token])."'
") or die("auth attempt: ".mysql_error());
} else die("Authentication failed (incomplete data).");
if (mysql_num_rows($result) != 1) die("Authentication failed.");
$line=mysql_fetch_array($result,MYSQL_ASSOC);
if ($inresponseto=="0" && (!isset($_POST[subject]) || $_POST[subject]=="" || ctype_space($_POST[subject]))) die("Thread cannot have empty subject");
$insres = mysql_query("
UPDATE board
SET subject = '".mysql_real_escape_string(htmlspecialchars($_POST[subject],ENT_QUOTES))."',
message = '".mysql_real_escape_string(preg_replace($tags_search,$tags_replace,htmlspecialchars(stripslashes($_POST[message]),ENT_QUOTES)))."
edited ".date($timefmt." ".$datefmt)."',
ip = '".mysql_real_escape_string($_SERVER[REMOTE_ADDR])."',
lasttime = NOW()
WHERE idx = '$posttoedit' AND author = '".mysql_real_escape_string($line[idx])."'
LIMIT 1
") or die ("update error: ".mysql_error());
if (mysql_affected_rows() != 1) die("no such post by you");
echo "Updated. ";
if ($inresponseto != 0) {
$upres = mysql_query("
UPDATE board
SET lasttime = NOW()
WHERE idx = $inresponseto
LIMIT 1
") or die("update error: ".mysql_error());
echo "Return to thread ";
echo "Return to forum";
}
} else if (isset($_GET['searchmode'])) {
// **** Searching (largely ripped off from Josh W)
pageheader();
echo "