/_taios.php |
---|
13,16 → 13,12 |
$this->drawnMiddle = false; |
$this->drawnFooter = false; |
$this->db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD); |
if (!$this->db) |
{ |
$this->drawError('Failed to connect to database: ' . mysql_error()); |
} |
if (!mysql_select_db('Tim32')) |
{ |
$this->drawError('Failed to select database: ' . mysql_error()); |
} |
try { |
$this->db = new PDO("mysql:dbname=Tim32;host=" . MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, |
array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" )); |
} catch (PDOException $e) { |
$this->drawError("Failed to connect to database!"); |
} |
} |
function drawHeader() |
30,16 → 26,19 |
if (!$this->drawnHeader) |
{ |
write('<!DOCTYPE html>'); |
write('<html>'); |
write('<html lang="en">'); |
write('<head>'); |
write('<meta http-equiv="Content-Type" content="text/html;charset=utf-8">'); |
write('<title>Tim32 · ' . $this->title . '</title>'); |
write('<link href="' . $this->url . 'styles.css" rel="stylesheet" type="text/css" media="screen">'); |
write('<title>Tim32 · ' . htmlentities($this->title, ENT_QUOTES) . '</title>'); |
write('<link href="' . $this->url . 'styles.css" rel="stylesheet" type="text/css" media="all" />'); |
write('<link rel="shortcut icon" href="' . $this->url . 'data/favicon.png" />'); |
write('<script type="text/javascript" src="//code.jquery.com/jquery-1.9.0.min.js"></script>'); |
write('<script type="text/javascript" src="' . $this->url . 'tcp.js"></script>'); |
write('</head>'); |
write('<body>'); |
write('<div class="sidebar">'); |
write('<div class="sidebar-header">'); |
write('<h1>Tim32</h1>'); |
write('<a href="' . $this->url . '"><h1>Tim32</h1></a>'); |
write('</div>'); |
write('<div class="sidebar-menu">'); |
$this->drawMenuItem('Home', 'index.php'); |
49,36 → 48,43 |
$this->drawMenuItem('Wiki', 'wiki/'); |
$this->drawMenuItem('Photos', 'photos/'); |
write('<br />'); |
if ($this->isLoggedIn()) |
{ |
if ($this->isLoggedIn() && $this->isUserNormal($this->getLoggedInUser())) { |
$this->drawMenuItem('Administration', 'admin/'); |
$this->drawMenuItem('Logout', 'logout-do.php'); |
} |
else |
{ |
} else if ($this->isLoggedIn()) { |
$this->drawMenuItem('Logout', 'logout-do.php'); |
if ($this->getLoggedInUser()->username != "cake") { |
$this->drawMenuItem('You are banned', NULL); |
} else { |
$this->drawMenuItem('<span style="color:#032865">#undefined</span>', '/challenge/cakefolder'); |
} |
} else { |
$this->drawMenuItem('Login', 'login.php'); |
$this->drawMenuItem('Register', 'register.php'); |
} |
write('<br />'); |
$this->drawnHeader = true; |
} |
} |
function drawMenuItem($t, $u) |
{ |
write('<p><a href="' . $this->url . $u . '">' . $t . '</a></p>'); |
function drawMenuItem($t, $u) { |
if ($u == NULL) { |
write('<p style="color:red">' . $t . '</p>'); |
} else { |
write('<p><a href="' . $this->url . $u . '">' . $t . '</a></p>'); |
} |
} |
function drawMiddle() |
{ |
if (!$this->drawnMiddle) |
{ |
write('<br />'); |
if (!$this->drawnMiddle) { |
write('</div>'); |
write('</div>'); |
write('<div class="content">'); |
write('<h2>' . $this->title . '</h2>'); |
write('<a href="./"><h2>' . $this->title . '</h2></a>'); |
$this->drawnMiddle = true; |
} |
105,8 → 111,7 |
write('<h4 style="color: red;">Error: ' . $text . '</h4>'); |
if ($die) |
{ |
if ($die) { |
$this->drawFooter(); |
die(); |
} |
116,21 → 121,28 |
{ |
$post = $this->getBlogPost($id); |
if ($first) |
write('<h3><a href="post.php?id=' . $id . '">' . $post->title. '</a> <a href="post.php?id=' . $post->parent->ID . '">^</a></h3>'); |
{ |
write('<h3><a href="post.php?id=' . $id . '">' . htmlentities($post->title, ENT_QUOTES). '</a> <a href="post.php?id=' . $post->parent->ID . '">^</a></h3>'); |
} |
else |
write('<a href="post.php?id=' . $id . '"><h3>' . $post->title. '</h3></a>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')</h5>'); |
write('<p>' . $post->content . '</p>'); |
write('<br />'); |
{ |
write('<a href="post.php?id=' . $id . '"><h3>' . htmlentities($post->title, ENT_QUOTES). '</h3></a>'); |
} |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . htmlentities($post->user->name, ENT_QUOTES) . ' (' . htmlentities($post->user->username, ENT_QUOTES) . ')</h5>'); |
write('<p>' . $this->replaceBBCode($post->content) . '</p>'); |
if ($this->isUserNormal($this->getLoggedInUser())) |
{ |
echo '<p class="bold"><a href="add-post.php?id=' . $id . '">Add Comment</a>'; |
if ($this->isUserAdmin($this->getLoggedInUser()) || $this->getLoggedInUser() == $post->author->ID) |
echo ' · <a href="del-post.php?id=' . $id . '">Delete Post</a>'; |
if ($this->isUserAdmin($this->getLoggedInUser()) || $this->getLoggedInUser()->ID == $post->author->ID) |
{ |
echo ' · <a href="edit-post.php?id=' . $id . '">Edit Post</a>'; |
echo ' · <a href="del-post.php?id=' . $id . '">Delete Post</a>'; |
} |
write('</p><br />'); |
} |
$ids = $this->findIDs('BlogPosts', 'WHERE ParentID=' . $id); |
$ids = $this->findIDs('BlogPosts', 'WHERE ParentID=?', array($id)); |
for ($i = 0; $i < count($ids); $i++) |
{ |
write('<div class="indent">'); |
147,7 → 159,7 |
for ($i = 0; $i < count($ids); $i++) |
{ |
$cat = $this->getBlogPost($ids[$i])->category; |
if (!in_array($cat, $cats)) |
if (!in_array($cat, $cats) && ($cat != "Drafts" || $this->isUserGM($this->getLoggedInUser()))) |
{ |
array_push($cats, $cat); |
} |
156,30 → 168,50 |
write('<h3>Categories</h3>'); |
for ($i = 0; $i < count($cats); $i++) |
{ |
$this->drawMenuItem($cats[$i], 'blog/index.php?cat=' . $cats[$i]); |
$this->drawMenuItem(htmlentities($cats[$i], ENT_QUOTES), 'blog/index.php?cat=' . $cats[$i]); |
} |
} |
function replaceBBCode($str) |
{ |
$newstr = str_replace("\n", '</p><p>', $str); |
$newstr = htmlentities($str, ENT_QUOTES); |
$newstr = str_replace("\n", "<br />", $newstr); |
$newstr = str_replace(' ', ' ', $newstr); |
$newstr = str_replace(':)'. '<img src="' . $this->url . 'data/smilies/face-smile.png" style="vertical-align: center;" />'); |
$bbcode = array( |
'/\[b\](.+?)\[\/b\]/is', |
'/\[i\](.+?)\[\/i\]/is', |
'/\[u\](.+?)\[\/u\]/is', |
'/\[url\](.+?)\[\/url\]/is', |
'/\[code\](.+?)\[\/code\]/is' |
'/\[b\](.+?)\[\/b\]/is', |
'/\[i\](.+?)\[\/i\]/is', |
'/\[u\](.+?)\[\/u\]/is', |
'/\[s\](.+?)\[\/s\]/is', |
'/\[url\](.+?)\[\/url\]/is', |
'/\[w\](.+?)\[\/w\]/is', |
'/\[url=(?:")?(.+?)(?:")?\](.+?)\[\/url\]/is', |
'/\[w=(?:")?(.+?)(?:")?\](.+?)\[\/w\]/is', |
'/\[code\](.+?)\[\/code\]/is', |
'/\[img\](.+?)\[\/img\]/is', |
'/\[ul\](.+?)\[\/ul\]/is', |
'/\[ol\](.+?)\[\/ol\]/is', |
'/\[li\](.+?)\[\/li\]/is', |
'/\[mono\](.+?)\[\/mono\]/is', |
'/\[tcp\](.+?)\[\/tcp\]/is' |
); |
$html = array( |
'<b>$1</b>', |
'<i>$1</i>', |
'<u>$1</u>', |
'<a href="$1">$1</a>', |
'<div class="code">$1</div>' |
'<b>$1</b>', |
'<i>$1</i>', |
'<u>$1</u>', |
'<del>$1</del>', |
'<a href="$1">$1</a>', |
'<a href="/wiki/index.php?page=$1">$1</a>', |
'<a href="$1">$2</a>', |
'<a href="/wiki/index.php?page=$1">$2</a>', |
'</p><div class="code">$1</div><p>', |
'<img src="$1" alt="BBCode-included image" />', |
'<ul>$1</ul>', |
'<ol>$1</ol>', |
'<li>$1</li>', |
'<span style="font-family: Droid Sans Mono, monospace, fixed; margin-left: 1em; margin-right: 1em;">$1</span>', |
'<span class="tcp" data-status="closed" data-text="$1">$1<img title="Open TCP Editor" class="tcp_button" src="//tim32.org/timlan/goTCP.png" alt="Open TCP Editor" /></span>' |
); |
$newstr = preg_replace($bbcode, $html, $newstr); |
187,6 → 219,59 |
return $newstr; |
} |
function acceptFile($fname) |
{ |
if (!ALLOW_FILES) |
{ |
$this->drawError("This system doesn't allow file uploading."); |
return false; |
} |
$this->checkLoggedIn(); |
if ($this->getLoggedInUser()->accessID >= 2) |
{ |
$this->drawError('You do not have permission to access this page.'); |
} |
$allowedExts = array("gif", "jpeg", "jpg", "png", "tga"); |
$temp = explode(".", $_FILES[$fname]["name"]); |
$extension = end($temp); |
if ((($_FILES[$fname]["type"] == "image/gif") |
|| ($_FILES[$fname]["type"] == "image/jpeg") |
|| ($_FILES[$fname]["type"] == "image/jpg") |
|| ($_FILES[$fname]["type"] == "image/pjpeg") |
|| ($_FILES[$fname]["type"] == "image/x-png") |
|| ($_FILES[$fname]["type"] == "image/png") |
|| ($_FILES[$fname]["type"] == "image/x-targa") |
|| ($_FILES[$fname]["type"] == "image/x-tga")) |
&& ($_FILES[$fname]["size"] < 200000) // file size limit (bytes) |
&& in_array($extension, $allowedExts)) |
{ |
if ($_FILES[$fname]["error"] > 0) |
{ |
$this->drawError("File Upload Error: " . $_FILES[$fname]["error"]); |
} |
else |
{ |
$lname = "upload/" . $this->rndString(12) . "." . $extension; |
while (file_exists($lname)) |
{ |
$lname = "upload/" . $this->rndString(12) . "." . $extension; |
} |
move_uploaded_file($_FILES[$fname]["tmp_name"], $this->url . $lname); |
return ROOT_PATH . $lname; |
} |
} |
else |
{ |
$this->drawError("Invalid file"); |
} |
return false; |
} |
function redirect($u) |
{ |
header('Location: ' . $u); |
251,32 → 336,61 |
return false; |
} |
function checkLoggedIn() |
function isUserBanned() |
{ |
if ($this->isLoggedIn()) |
{ |
if ($this->getLoggedInUser()->accessID >= 3) |
{ |
return true; |
} |
} |
return false; |
} |
function checkChallengeStatus($challengeID, $previous, $next) |
{ |
$currentChallengeID = $this->getLoggedInUser()->challengeID; |
if (!$this->isLoggedIn()) |
{ |
$this->drawError('You need to be logged in.'); |
$this->redirect('index.php'); |
} |
else if ($currentChallengeID > $challengeID) |
{ |
$this->redirect($next . '.php'); |
} |
else if ($currentChallengeID < $challengeID) |
{ |
$this->redirect($previous . '.php'); |
} |
} |
function query($query) |
function checkLoggedIn() |
{ |
$result = mysql_query($query); |
if (!$result) |
if (!$this->isLoggedIn()) |
{ |
$this->drawError('MySQL Error: ' . mysql_error()); |
$this->drawError('You need to be logged in.'); |
} |
return $result; |
} |
function findIDs($table, $query = '') |
function query($query, $args = array()) |
{ |
$statement = $this->db->prepare($query); |
if (!$statement->execute($args)) { |
$this->drawError("Query Failed! MySQL Error: " . $statement->errorInfo()); |
} |
return $statement->fetchAll(); |
} |
function findIDs($table, $query = '', $args = array()) |
{ |
$array = array(); |
$result = $this->query('SELECT ID FROM ' . $table . ' ' . $query); |
while ($row = mysql_fetch_array($result)) |
{ |
$results = $this->query('SELECT ID FROM ' . $table . ' ' . $query, $args); |
foreach ($results as $row) { |
array_push($array, $row['ID']); |
} |
285,16 → 399,16 |
function getUserByID($id) |
{ |
$result = $this->query('SELECT * FROM Users WHERE ID = ' . $id); |
while ($row = mysql_fetch_array($result)) |
{ |
$user = new User; |
foreach ($this->query("SELECT * FROM Users WHERE ID = ?", array($id)) as $row) { |
$user = new User(); |
$user->ID = $row['ID']; |
$user->accessID = $row['AccessID']; |
$user->username = $row['Username']; |
$user->password = $row['Password']; |
$user->salt = $row['Salt']; |
$user->emailAddress = $row['EmailAddress']; |
$user->name = $row['Name']; |
$user->csrftoken = $row['CSRFToken']; |
$user->challengeID = $row['ChallengeID']; |
return $user; |
303,11 → 417,8 |
return false; |
} |
function getUserByUsername($username) |
{ |
$result = $this->query('SELECT * FROM Users WHERE Username = "' . $username . '"'); |
while ($row = mysql_fetch_array($result)) |
{ |
function getUserByUsername($username) { |
foreach ($this->query("SELECT ID FROM Users WHERE Username = ?", array($username)) as $row) { |
return $this->getUserByID($row['ID']); |
} |
314,10 → 425,8 |
return false; |
} |
function getLoggedInUser() |
{ |
if ($this->isLoggedIn()) |
{ |
function getLoggedInUser() { |
if ($this->isLoggedIn()) { |
$clist = explode('|~|', $_COOKIE['Tim32_Login']); |
return $this->getUserByUsername($clist[0]); |
} |
325,25 → 434,21 |
return false; |
} |
function getBlogPost($id) |
{ |
$result = $this->query('SELECT * FROM BlogPosts WHERE ID = ' . $id); |
while ($row = mysql_fetch_array($result)) |
{ |
function getBlogPost($id) { |
foreach ($this->query("SELECT * FROM BlogPosts WHERE ID = ?", array($id)) as $row) { |
$post = new BlogPost; |
$post->ID = $row['ID']; |
if ($row['ParentID'] == -1) |
{ |
if ($row['ParentID'] == -1) { |
$post->parent = -1; |
} |
else |
{ |
} else { |
$post->parent = $this->getBlogPost($row['ParentID']); |
} |
$post->author = $this->getUserByID($row['AuthorID']); |
$post->user = $this->getUserByID($row['AuthorID']); // For some older pages |
$post->title = $row['Title']; |
$post->content = $this->replaceBBCode($row['Content']); |
$post->content = $row['Content']; |
$post->datePosted = strtotime($row['DatePosted']); |
$post->category = $row['Category']; |
$post->spam = $row['Spam']; |
354,20 → 459,102 |
$this->drawError('Cannot find blog post, #' . $id); |
} |
function delBlogPost($id) |
{ |
$ids = $this->findIDs('BlogPosts', 'WHERE ParentID=' . $id); |
for ($i = 0; $i < count($ids); $i++) |
$this->delBlogPost($ids[$i]); |
function getProject($id) { |
foreach ($this->query("SELECT * FROM Projects WHERE ID = ?", array($id)) as $row) { |
$project = new Project; |
$project->ID = $row['ID']; |
$project->author = $this->getUserByID($row['AuthorID']); |
$project->title = $row['Title']; |
$project->description = $row['Description']; |
$project->logoURL = $row['LogoURL']; |
$project->downloadURL = $row['DownloadURL']; |
$project->websiteURL = $row['WebsiteURL']; |
$project->latestVersion = $row['LatestVersion']; |
$project->lastUpdate = strtotime($row['LastUpdate']); |
return $project; |
} |
return false; |
} |
function getForumCategory($id) { |
foreach ($this->query("SELECT * FROM ForumCategories WHERE ID = ?", array($id)) as $row) { |
$f = new ForumCategory; |
$f->ID = $row['ID']; |
$f->parent = $this->getForumCategory($row['ParentID']); |
$f->title = $row['Title']; |
$f->description = $row['Description']; |
return $f; |
} |
return false; |
} |
function getForumPost($id) { |
foreach ($this->query("SELECT * FROM ForumPosts WHERE ID = ?", array($id)) as $row) { |
$f = new ForumPost; |
$f->ID = $row['ID']; |
$f->author = $this->getUserByID($row['AuthorID']); |
$f->category = $this->getForumCategory($row['CategoryID']); |
$f->parent = $this->getForumPost($row['ParentID']); |
$f->title = $row['Title']; |
$f->content = $row['Content']; |
$f->datePosted = strtotime($row['DatePosted']); |
$f->spam = $row['Spam']; |
return $f; |
} |
return false; |
} |
function delBlogPost($id) { |
foreach ($this->findIDs("BlogPosts", "WHERE ParentID = ?", array($id)) as $i) { |
$this->delBlogPost($i); |
} |
$this->query("DELETE FROM BlogPosts WHERE ID = ?", array($id)); |
} |
$this->query('delete from BlogPosts where ID=' . $id); |
function saltAndBurn($pass, $salt) { |
return sha1($salt . $pass); |
} |
function getGetID() |
{ |
function rndString($len = 8) { |
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZlolphp'; |
$clen = strlen($chars); |
$res = ''; |
for ($i = $len - 1; $i >= 0; $i--) { |
$res .= $chars[rand(0, $clen - 1)]; |
} |
return $res; |
} |
function getCSRFToken($id) { |
$token = $this->rndString(); |
$this->query("UPDATE Users Set CSRFToken = ? WHERE ID = ?", array($token, $id)); |
return $token; |
} |
function checkCSRFToken($id, $token) { |
$user = $this->getUserByID($id); |
if ($token !== $user->csrftoken) { |
die("a death"); |
} |
$this->getCSRFToken($id); // change to something else so we can't re-use it |
} |
function getGetID() { |
$id = $_GET['id']; |
if (empty($id)) |
{ |
if (empty($id)) { |
$id = 1; |
} |
374,11 → 561,9 |
return $id; |
} |
function getPostID() |
{ |
function getPostID() { |
$id = $_POST['id']; |
if (empty($id)) |
{ |
if (empty($id)) { |
$id = 1; |
} |
393,8 → 578,11 |
public $accessID; |
public $username; |
public $password; |
public $salt; |
public $emailAddress; |
public $name; |
public $csrftoken; |
public $challengeID; |
} |
410,6 → 598,42 |
public $spam; |
} |
class Project |
{ |
public $ID; |
public $author; |
public $title; |
public $description; |
public $logoURL; |
public $downloadURL; |
public $websiteURL; |
public $latestVersion; |
public $lastUpdate; |
} |
class ForumCategory |
{ |
public $ID; |
public $parent; |
public $title; |
public $description; |
} |
class ForumPost |
{ |
public $id; |
public $author; |
public $category; |
public $parent; |
public $title; |
public $content; |
public $datePosted; |
public $spam; |
} |
function write($str) |
{ |
echo $str; |
/admin/account.php |
---|
1,60 → 1,60 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage Account', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$userID = $page->getGetID(); |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user) |
{ |
?> |
<p class="bold">Here you can edit your account.</p> |
<p>Only change the password value if you want to change your password.</p> |
<br /> |
<form action="account-do.php" method="POST"> |
<table> |
<tr><td class="bold">ID: </td><td><?php echo $user->ID; ?></td></tr> |
<?php |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<tr><td class="bold">AccessID: </td><td><input type="text" name="accessID" value="' . $user->accessID . '" /></td></tr>'); |
} |
else |
{ |
write('<tr><td class="bold">AccessID: </td><td>' . $user->accessID . '</td></tr>'); |
} |
?> |
<tr><td class="bold">Username: </td><td><?php echo $user->username; ?></td></tr> |
<tr><td class="bold">Password: </td><td><input type="password" name="password" /></td></tr> |
<tr><td class="bold">Email Address: </td><td><input type="text" name="email" value="<?php echo $user->emailAddress; ?>" /></td></tr> |
<tr><td class="bold">Name: </td><td><input type="text" name="name" value="<?php echo $user->name; ?>" /></td></tr> |
<tr><td></td><td><input type="submit" value="Update Account" /></td></tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
if (!$user) |
{ |
drawError('No such user, #' . $userID); |
} |
else |
{ |
drawError('You do not have permission to access this page.'); |
} |
} |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage Account', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$userID = $page->getGetID(); |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user && $page->isUserNormal($page->getLoggedInUser())) |
{ |
?> |
<p class="bold">Here you can edit your account.</p> |
<p>Only change the password value if you want to change your password.</p> |
<br /> |
<form action="account-do.php" method="POST"> |
<table> |
<tr><td class="bold">ID: </td><td><input type="hidden" name="id" value="<?php echo $user->ID; ?>" /><?php echo $user->ID; ?></td></tr> |
<?php |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<tr><td class="bold">AccessID: </td><td><input type="text" name="accessID" value="' . $user->accessID . '" /></td></tr>'); |
} |
else |
{ |
write('<tr><td class="bold">AccessID: </td><td>' . $user->accessID . '</td></tr>'); |
} |
?> |
<tr><td class="bold">Username: </td><td><?php echo htmlentities($user->username, ENT_QUOTES); ?></td></tr> |
<tr><td class="bold">Password: </td><td><input type="password" name="password" /></td></tr> |
<tr><td class="bold">Email Address: </td><td><input type="text" name="email" value="<?php echo htmlentities($user->emailAddress, ENT_QUOTES); ?>" /></td></tr> |
<tr><td class="bold">Name: </td><td><input type="text" name="name" value="<?php echo htmlentities($user->name, ENT_QUOTES); ?>" /></td></tr> |
<tr><td></td><td><input type="submit" value="Update Account" /></td></tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
if (!$user) |
{ |
$page->drawError('No such user, #' . $userID); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->drawFooter(); |
?> |
/admin/all-accounts.php |
---|
1,51 → 1,51 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Accounts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the accounts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">AccessID</td>'); |
write('<td class="bold">Username</td>'); |
write('<td class="bold">Password</td>'); |
write('<td class="bold">Name</td>'); |
write('<td class="bold">Email Address</td>'); |
write('<td class="bold">Challenge ID</td>'); |
write('</tr>'); |
$ids = $page->findIDs('Users'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$user = $page->getUserByID($ids[$i]); |
write('<tr>'); |
write('<td><a href="account.php?id=' . $user->ID . '">' . $user->ID . '</a></td>'); |
write('<td>' . $user->accessID . '</td>'); |
write('<td>' . $user->username . '</td>'); |
write('<td>' . $user->password . '</td>'); |
write('<td>' . $user->name . '</td>'); |
write('<td>' . $user->emailAddress . '</td>'); |
write('<td>' . $user->challengeID . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Accounts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the accounts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">AccessID</td>'); |
write('<td class="bold">Username</td>'); |
write('<td class="bold">Salt and Burned Password</td>'); |
write('<td class="bold">Name</td>'); |
write('<td class="bold">Email Address</td>'); |
write('<td class="bold">Challenge ID</td>'); |
write('</tr>'); |
$ids = $page->findIDs('Users'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$user = $page->getUserByID($ids[$i]); |
write('<tr>'); |
write('<td><a href="account.php?id=' . $user->ID . '">' . $user->ID . '</a></td>'); |
write('<td>' . $user->accessID . '</td>'); |
write('<td>' . htmlentities($user->username, ENT_QUOTES) . '</td>'); |
write('<td>' . $user->password . '</td>'); |
write('<td>' . htmlentities($user->name, ENT_QUOTES) . '</td>'); |
write('<td>' . htmlentities($user->emailAddress, ENT_QUOTES) . '</td>'); |
write('<td>' . $user->challengeID . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-blog-posts.php |
---|
1,60 → 1,64 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Blog Posts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the blog posts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Content</td>'); |
write('<td class="bold">Date Posted</td>'); |
write('<td class="bold">Category</td>'); |
write('<td class="bold">Spam</td>'); |
write('</tr>'); |
$ids = $page->findIDs('BlogPosts'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$post = $page->getBlogPost($ids[$i]); |
write('<tr>'); |
write('<td><a href="../blog/edit-post.php?id=' . $post->ID . '">' . $post->ID . '</a></td>'); |
if ($post->parent == -1) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . $post->parent->title . '</td>'); |
} |
write('<td><a href="account.php?id=' . $post->author->ID . '">' . $post->author->name . '</a></td>'); |
write('<td>' . $post->title . '</td>'); |
write('<td>' . $post->content . '</td>'); |
write('<td>' . date('j/m/Y H:i', $post->datePosted) . '</td>'); |
write('<td>' . $post->category . '</td>'); |
write('<td>' . $post->spam . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Blog Posts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the blog posts on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Content</td>'); |
write('<td class="bold">Date Posted</td>'); |
write('<td class="bold">Category</td>'); |
write('<td class="bold">Spam</td>'); |
write('</tr>'); |
$ids = $page->findIDs('BlogPosts', 'ORDER BY DatePosted DESC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$id_str = $ids[$i]; |
if (!empty($id_str)) |
{ |
$post = $page->getBlogPost($id_str); |
write('<tr>'); |
write('<td><a href="../blog/edit-post.php?id=' . $post->ID . '">' . $post->ID . '</a></td>'); |
if ($post->parent == -1) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . htmlentities($post->parent->title, ENT_QUOTES) . '</td>'); |
} |
write('<td><a href="account.php?id=' . $post->author->ID . '">' . htmlentities($post->author->name, ENT_QUOTES) . '</a></td>'); |
write('<td>' . $post->title . '</td>'); |
write('<td>' . str_replace("\n", '<br />', htmlentities($post->content, ENT_QUOTES)) . '</td>'); |
write('<td>' . date('j/m/Y H:i', $post->datePosted) . ' <a href="nowify.php?id=' . $post->ID . '">Nowify</a></td>'); |
write('<td>' . htmlentities($post->category, ENT_QUOTES) . '</td>'); |
write('<td>' . $post->spam . '</td>'); |
write('</tr>'); |
} |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-forum-categories.php |
---|
0,0 → 1,52 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Forum Categories', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the forum categories on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Description</td>'); |
write('</tr>'); |
$ids = $page->findIDs('ForumCategories'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$cat = $page->getForumCategory($ids[$i]); |
write('<tr>'); |
write('<td><a href="../forums/index.php?parentID=' . $cat->ID . '">' . $cat->ID . '</a></td>'); |
if (!$cat->parent) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . htmlentities($cat->parent->title, ENT_QUOTES) . '</td>'); |
} |
write('<td>' . htmlentities($cat->title, ENT_QUOTES) . '</td>'); |
write('<td>' . htmlentities($cat->description, ENT_QUOTES) . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-forum-posts.php |
---|
0,0 → 1,67 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Forum Posts', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the forum categories on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Category</td>'); |
write('<td class="bold">Parent</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Content</td>'); |
write('<td class="bold">Date Posted</td>'); |
write('<td class="bold">Spam</td>'); |
write('</tr>'); |
$ids = $page->findIDs('ForumPosts'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$post = $page->getForumPost($ids[$i]); |
write('<tr>'); |
write('<td><a href="../forums/post.php?id=' . $post->ID . '">' . $post->ID . '</a></td>'); |
write('<td><a href="account.php?id=' . $post->author->ID . '">' . htmlentities($post->author->name, ENT_QUOTES) . '</a></td>'); |
if (!$post->category) |
{ |
write('<td style="color: #444444;">No Category</td>'); |
} |
else |
{ |
write('<td>' . htmlentities($post->category->title, ENT_QUOTES) . '</td>'); |
} |
if (!$post->parent) |
{ |
write('<td style="color: #444444;">No Parent</td>'); |
} |
else |
{ |
write('<td>' . htmlentities($post->parent->title, ENT_QUOTES) . '</td>'); |
} |
write('<td>' . htmlentities($post->title, ENT_QUOTES) . '</td>'); |
write('<td>' . str_replace("\n", ' ', htmlentities($post->content, ENT_QUOTES)) . '</td>'); |
write('<td>' . date('j/m/Y H:i', $post->datePosted) . '</td>'); |
write('<td>' . $post->spam . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/all-projects.php |
---|
0,0 → 1,55 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Manage All Projects', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold">Use this to manage all the projects on the Tim32 Website.</p><br />'); |
write('<table>'); |
write('<tr>'); |
write('<td class="bold">ID</td>'); |
write('<td class="bold">Author</td>'); |
write('<td class="bold">Title</td>'); |
write('<td class="bold">Description</td>'); |
write('<td class="bold">Logo</td>'); |
write('<td class="bold">Download</td>'); |
write('<td class="bold">Website</td>'); |
write('<td class="bold">Latest Version</td>'); |
write('<td class="bold">Last Update</td>'); |
write('</tr>'); |
$ids = $page->findIDs('Projects'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$project = $page->getProject($ids[$i]); |
write('<tr>'); |
write('<td><a href="../projects/edit-project.php?id=' . $project->ID . '">' . $project->ID . '</a></td>'); |
write('<td><a href="account.php?id=' . $project->author->ID . '">' . htmlentities($project->author->name, ENT_QUOTES) . '</a></td>'); |
write('<td>' . htmlentities($project->title, ENT_QUOTES) . '</td>'); |
write('<td>' . str_replace("\n", '<br />', htmlentities($project->description, ENT_QUOTES)) . '</td>'); |
write('<td><img src="' . htmlentities($project->logoURL, ENT_QUOTES) . '" /></td>'); |
write('<td><a href="' . htmlentities($project->downloadURL, ENT_QUOTES) . '">Link</a></td>'); |
write('<td><a href="' . htmlentities($project->websiteURL, ENT_QUOTES) . '">Link</a></td>'); |
write('<td>' . htmlentities($project->latestVersion, ENT_QUOTES) . '</td>'); |
write('<td>' . date('j/m/Y H:i', $project->lastUpdate) . '</td>'); |
write('</tr>'); |
} |
write('</table>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/admin/nowify.php |
---|
0,0 → 1,60 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Nowify', '../'); |
if (isset($_GET['id'])) { |
$id = $_GET['id']; |
} else if (isset($_POST['id'])) { |
$id = $_POST['id']; |
} else { |
$page->drawError('No ID set.'); |
} |
$page->checkLoggedIn(); |
$post = $page->getBlogPost($id); |
if ((!$page->isUserAdmin($page->getLoggedInUser()) && $page->getLoggedInUser()->ID != $post->author->ID) || !$page->isUserNormal($page->getLoggedInUser())) { |
$page->drawError('You do not have permission to access this page.'); |
} |
$error = ''; |
if (isset($_POST['id'])) |
{ |
$title = $_POST['title']; |
$page->query("UPDATE BlogPosts SET DatePosted = NOW() WHERE ID = ?", array($id)); |
$page->redirect('/blog/post.php?id=' . $id); |
} |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
if (!empty($error)) { |
$page->drawError($error, false); |
} |
?> |
<form action="nowify.php" method="post"> |
Press Sumbit if you wish to nowify post <?php echo htmlentities($post->title, ENT_QUOTES); ?>.<br /><br /> |
<?php |
write('<input type="hidden" name="id" value="' . $id . '" />'); |
?> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Submit" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/admin/account-do.php |
---|
1,53 → 1,44 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Update Account', '../'); |
$userID = $page->getPostID(); |
$page->checkLoggedIn(); |
$accessID = $_POST['accessID']; |
$password = $_POST['password']; |
$email = $_POST['email']; |
$name = $_POST['name']; |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user) |
{ |
if (isset($accessID) && $page->isUserAdmin($page->getLoggedInUser())) |
{ |
$page->query('UPDATE Users SET AccessID = "' . $accessID . '" WHERE ID = ' . $userID); |
} |
if (!empty($password)) |
{ |
$page->query('UPDATE Users SET Password = "' . sha1($password) . '" WHERE ID = ' . $userID); |
} |
if (!empty($email)) |
{ |
$page->query('UPDATE Users SET EmailAddress = "' . $email . '" WHERE ID = ' . $userID); |
} |
if (!empty($name)) |
{ |
$page->query('UPDATE Users SET Name = "' . $name . '" WHERE ID = ' . $userID); |
} |
} |
else |
{ |
if (!$user) |
{ |
drawError('No such user, #' . $userID); |
} |
else |
{ |
drawError('You do not have permission to access this page.'); |
} |
} |
$page->redirect('account.php?id=' . $userID); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Update Account', '../'); |
$userID = $page->getPostID(); |
$page->checkLoggedIn(); |
$accessID = $_POST['accessID']; |
$password = $_POST['password']; |
$email = $_POST['email']; |
$name = $_POST['name']; |
$user = $page->getUserByID($userID); |
if (($page->getLoggedInUser()->ID == $userID || $page->isUserAdmin($page->getLoggedInUser())) && $user && $page->isUserNormal($page->getLoggedInUser())) { |
if (isset($accessID) && $page->isUserAdmin($page->getLoggedInUser())) { |
$page->query("UPDATE Users SET AccessID = ? WHERE ID = ?", array($accessID, $userID)); |
} |
if (!empty($password)) { |
$salt = $user->username . "sheeps"; |
$page->query("UPDATE Users SET Password = ?, Salt = ? WHERE ID = ?", array($page->saltAndBurn($password, $salt), $salt, $userID)); |
} |
if (!empty($email)) { |
$page->query("UPDATE Users SET EmailAddress = ? WHERE ID = ?", array($email, $userID)); |
} |
if (!empty($name)) { |
$page->query("UPDATE Users SET Name = ? WHERE ID = ?", array($name, $userID)); |
} |
} else { |
if (!$user) { |
$page->drawError('No such user, #' . $userID); |
} else { |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->redirect('account.php?id=' . $userID); |
?> |
/admin/index.php |
---|
1,27 → 1,33 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Administration', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$user = $page->getLoggedInUser(); |
write('<h4><a href="account.php?id=' . $user->ID. '">Manage Account</a></h4>'); |
if ($page->isUserAdmin($user)) |
{ |
write('<h4><a href="all-accounts.php">Manage All Accounts</a></h4>'); |
write('<h4><a href="all-blog-posts.php">Manage All Blog Posts</a></h4>'); |
write('<h4><a href="all-projects.php">Manage All Projects</a></h4>'); |
write('<h4><a href="all-forum-categories.php">Manage All Forum Categories</a></h4>'); |
write('<h4><a href="all-forum-topics.php">Manage All Forum Topics</a></h4>'); |
write('<h4><a href="all-forum-posts.php">Manage All Forum Posts</a></h4>'); |
} |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Administration', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$user = $page->getLoggedInUser(); |
if ($page->isUserNormal($user)) |
{ |
write('<h4><a href="account.php?id=' . $user->ID. '">Manage Account</a></h4>'); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
if ($page->isUserAdmin($user)) |
{ |
write('<h4><a href="all-accounts.php">Manage All Accounts</a></h4>'); |
write('<h4><a href="all-blog-posts.php">Manage All Blog Posts</a></h4>'); |
write('<h4><a href="all-projects.php">Manage All Projects</a></h4>'); |
write('<h4><a href="all-forum-categories.php">Manage All Forum Categories</a></h4>'); |
write('<h4><a href="all-forum-posts.php">Manage All Forum Posts</a></h4>'); |
} |
$page->drawFooter(); |
?> |
/blog/edit-post.php |
---|
0,0 → 1,90 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Post', '../'); |
if (isset($_GET['id'])) |
{ |
$id = $_GET['id']; |
} |
else if (isset($_POST['id'])) |
{ |
$id = $_POST['id']; |
} |
else |
{ |
$page->drawError('No ID set.'); |
} |
$page->checkLoggedIn(); |
$post = $page->getBlogPost($id); |
if ((!$page->isUserAdmin($page->getLoggedInUser()) && $page->getLoggedInUser()->ID != $post->author->ID) || !$page->isUserNormal($page->getLoggedInUser())) |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$error = ''; |
if (isset($_POST['id'])) { |
$page->checkCSRFToken($page->getLoggedInUser()->ID, $_POST['csrftoken']); |
$title = $_POST['title']; |
$content = $_POST['content']; |
$category = $_POST['category']; |
if (empty($title)) { |
$error = "No Title Specified"; |
} else if (empty($content)) { |
$error = "No Content Specified"; |
} else { |
$args = array($content, $title, $category, $id); |
$page->query("UPDATE BlogPosts SET Content = ?, Title = ?, Category = ? WHERE ID = ?", $args); |
$page->redirect('post.php?id=' . $id); |
} |
} |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
if (!empty($error)) { |
$page->drawError($error, false); |
} |
?> |
<form action="edit-post.php" method="post"> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" value="<?php echo htmlentities($post->title, ENT_QUOTES); ?>"/></td> |
</tr> |
<tr> |
<td class="bold">Content: </td> |
<td><textarea name="content"><?php echo htmlentities($post->content, ENT_QUOTES); ?></textarea></td> |
</tr> |
<tr> |
<td class="bold">Catagory: </td> |
<td><input type="text" name="category" value="<?php echo htmlentities($post->category, ENT_QUOTES); ?>" /></td> |
</tr> |
<?php |
write('<input type="hidden" name="id" value="' . $id . '" />'); |
?> |
<input type="hidden" name="csrftoken" value="<?php echo $page->getCSRFToken($page->getLoggedInUser()->ID); ?>" /> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Edit" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/blog/index.php |
---|
5,6 → 5,8 |
$page = new Taios_Page('Blog Posts', '../'); |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
write('<br /><h3>RSS</h3>'); |
$page->drawMenuItem('RSS Feed', 'blog/rss.php'); |
$page->drawMiddle(); |
if ($page->isUserGM($page->getLoggedInUser())) |
14,24 → 16,29 |
} |
$query = 'WHERE ParentID = -1'; |
$args = array(); |
if (isset($_GET['cat'])) |
{ |
$query = $query . ' AND Category = "' . $_GET['cat'] . '"'; |
write('<p>Only showing blog posts from the ' . $_GET['cat'] . ' category. <a href="index.php">Reset Filtering</a></p><br />'); |
if (isset($_GET['cat'])) { |
$query = $query . " AND Category = ?"; |
array_push($args, $_GET['cat']); |
write('<p>Only showing blog posts from the ' . htmlentities($_GET['cat'], ENT_QUOTES) . ' category. <a href="index.php">Reset Filtering</a></p><br />'); |
} |
if (!$page->isUserGM($page->getLoggedInUser())) { |
$query = $query . ' AND Category != "Drafts"'; |
} |
$query = $query . " ORDER BY DatePosted DESC"; |
$ids = $page->findIDs('BlogPosts', $query); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
foreach ($page->findIDs('BlogPosts', $query, $args) as $id) { |
$post = $page->getBlogPost($id); |
$ids2 = $page->findIDs('BlogPosts', 'WHERE ParentID="' . $id . '"'); |
write('<a href="post.php?id=' . $id . '"><h3>' . $post->title. '</h3></a>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')</h5>'); |
write('<p>' . $post->content . '</p>'); |
write('<a href="post.php?id=' . $id . '"><h3>' . htmlentities($post->title, ENT_QUOTES). '</h3></a>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . htmlentities($post->user->name, ENT_QUOTES) . ' (' . htmlentities($post->user->username, ENT_QUOTES) . ')</h5>'); |
write('<p>' . $page->replaceBBCode($post->content) . '</p>'); |
write('<h5 style="color: #666666;"><a href="post.php?id=' . $id . '">' . count($ids2) . ' Comments</a></h5>'); |
write('<br />'); |
} |
/blog/post.php |
---|
4,11 → 4,13 |
$page = new Taios_Page('Blog Posts', '../'); |
if (empty($_GET['id'])) |
if (empty($_GET['id']) || $_GET['id'] == -1) |
{ |
$page->redirect('index.php'); |
} |
$page->title = 'Blog Post · ' . htmlentities($page->getBlogPost($page->getGetID())->title, ENT_QUOTES); |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
/blog/rss.php |
---|
0,0 → 1,34 |
<?php |
require '../_taios.php'; |
header("Content-type: application/rss+xml"); |
$page = new Taios_Page('Blog RSS Feed', '../'); |
write('<?xml version="1.0" encoding="UTF-8" ?>'); |
write('<rss version="2.0">'); |
write('<channel>'); |
write('<title>Tim32 Blog RSS</title>'); |
write('<description>This is the RSS feed for the Tim32 Blog.</description>'); |
write('<link>http://tim32.org/blog/</link>'); |
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 AND CATEGORY != "Drafts" ORDER BY DatePosted DESC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$post = $page->getBlogPost($id); |
write('<item>'); |
write('<title>' . htmlentities($post->title, ENT_QUOTES) . '</title>'); |
write('<link>http://tim32.org/blog/post.php?id=' . $id . '</link>'); |
write('<guid>' . $id . '</guid>'); |
write('<pubDate>' . date('D, d M Y H:i:s O', $post->datePosted). '</pubDate>'); |
write('<description><![CDATA[' . $page->replaceBBCode($post->content) . ']]></description>'); |
write('</item>'); |
} |
write('</channel>'); |
write('</rss>'); |
?> |
/blog/add-post-img.php |
---|
0,0 → 1,97 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Post', '../'); |
if (isset($_GET['id'])) |
{ |
$id = $_GET['id']; |
} |
else if (isset($_POST['id'])) |
{ |
$id = $_POST['id']; |
} |
else |
{ |
$page->drawError('No ID set.'); |
} |
$page->checkLoggedIn(); |
$post = $page->getBlogPost($id); |
if ((!$page->isUserAdmin($page->getLoggedInUser()) && $page->getLoggedInUser()->ID != $post->author->ID) || !$page->isUserNormal($page->getLoggedInUser())) |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$error = ''; |
if (isset($_POST['id'])) { |
$page->checkCSRFToken($page->getLoggedInUser()->ID, $_POST['csrftoken']); |
$lname = $page->acceptFile("file"); |
if ($lname == false) |
die(); |
$content = $post->content; |
if (isset($_POST['label'])) |
{ |
$label = $_POST['label']; |
$content = $content . "\n\n[b]" . $label . "[/b]\n"; |
} |
$content = $content . "[img]" . $lname . "[/img]"; |
if (empty($title)) { |
$args = array($content, $id); |
$page->query("UPDATE BlogPosts SET Content = ? WHERE ID = ?", $args); |
$page->redirect('post.php?id=' . $id); |
} |
} |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
if (!empty($error)) { |
$page->drawError($error, false); |
} |
?> |
<form action="add-post-img.php" method="post" enctype="multipart/form-data"> |
<table> |
<tr> |
<td class="bold">Post Title: </td> |
<td><?php echo $post->title; ?></td> |
</tr> |
<tr> |
<td class="bold">Label: </td> |
<td><input type="text" name="label" value=""/></td> |
</tr> |
<tr> |
<td class="bold">File: </td> |
<td><input type="file" name="file" id="file"></td> |
</tr> |
<?php |
write('<input type="hidden" name="id" value="' . $id . '" />'); |
?> |
<input type="hidden" name="csrftoken" value="<?php echo $page->getCSRFToken($page->getLoggedInUser()->ID); ?>" /> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Add Image" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/blog/add-post.php |
---|
1,91 → 1,100 |
<?php |
function getParentID() |
{ |
if (isset($_GET['id'])) |
{ |
return $_GET['id']; |
} |
else |
{ |
return -1; |
} |
} |
require '../_taios.php'; |
$page = new Taios_Page('Blog Posts', '../'); |
$page->checkLoggedIn(); |
$error = ''; |
if (isset($_POST['post'])) |
{ |
$title = $_POST['title']; |
$content = $_POST['content']; |
$parentID = $_POST['parentID']; |
$category = $_POST['category']; |
if (empty($title)) |
{ |
$error = "No Title Specified"; |
} |
else if (empty($content)) |
{ |
$error = "No Content Specified"; |
} |
else if (empty($parentID)) |
{ |
$error = "No Parent ID Specified"; |
} |
else |
{ |
$page->query('INSERT INTO BlogPosts VALUES(0, ' . $parentID . ', "' . $page->getLoggedInUser()->ID . '", "' . $title . '", "' . $content . '", NOW(), "' . $category . '", 0)'); |
$page->redirect('index.php'); |
} |
} |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
if (!empty($error)) |
{ |
$page->drawError($error, false); |
} |
?> |
<form action="add-post.php?id=<?php echo getParentID(); ?>" method="post"> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Content: </td> |
<td><textarea name="content" style="width: 500px; height: 300px;"></textarea></td> |
</tr> |
<tr> |
<td class="bold">Catagory: </td> |
<td><input type="text" name="category" /></td> |
</tr> |
<input type="hidden" name="post" value="yes" /> |
<?php |
write('<input type="hidden" name="parentID" value="' . getParentID() . '" />'); |
?> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Post" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
<?php |
function getParentID() |
{ |
if (isset($_GET['id'])) |
{ |
return $_GET['id']; |
} |
else |
{ |
return -1; |
} |
} |
require '../_taios.php'; |
$page = new Taios_Page('Add Post', '../'); |
$page->checkLoggedIn(); |
$error = ''; |
if (isset($_POST['post'])) |
{ |
$page->checkCSRFToken($page->getLoggedInUser()->ID, $_POST['csrftoken']); |
$title = $_POST['title']; |
$content = $_POST['content']; |
$parentID = $_POST['parentID']; |
$category = $_POST['category']; |
if (empty($title)) |
{ |
$error = "No Title Specified"; |
} |
else if (empty($content)) |
{ |
$error = "No Content Specified"; |
} |
else if (empty($parentID)) |
{ |
$error = "No Parent ID Specified"; |
} |
else |
{ |
if (($page->getLoggedInUser()->accessID >= 2 && $parentID == -1) || $page->getLoggedInUser()->accessID > 2) |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$args = array(0, $parentID, $page->getLoggedInUser()->ID, $title, $content, $category, 0); |
$page->query("INSERT INTO BlogPosts VALUES(?, ?, ?, ?, ?, NOW(), ?, ?)", $args); |
$page->redirect('post.php?id=' . $parentID); |
} |
} |
$page->drawHeader(); |
$page->drawBlogCategoriesMenu(); |
$page->drawMiddle(); |
if (!empty($error)) |
{ |
$page->drawError($error, false); |
} |
?> |
<form action="add-post.php?id=<?php echo getParentID(); ?>" method="post"> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Content: </td> |
<td><textarea name="content" style="width: 500px; height: 300px;"></textarea></td> |
</tr> |
<tr> |
<td class="bold">Catagory: </td> |
<td><input type="text" name="category" /></td> |
</tr> |
<input type="hidden" name="post" value="yes" /> |
<input type="hidden" name="csrftoken" value="<?php echo $page->getCSRFToken($page->getLoggedInUser()->ID); ?>" /> |
<?php |
write('<input type="hidden" name="parentID" value="' . getParentID() . '" />'); |
?> |
<tr> |
<td class="bold"></td> |
<td><input type="submit" value="Post" /></td> |
</tr> |
</table> |
</form> |
<?php |
$page->drawFooter(); |
?> |
/blog/del-post.php |
---|
7,7 → 7,7 |
$id = $_GET['id']; |
if ($id) |
{ |
if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $page->getBlogPost($id)->author->ID) |
if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $page->getBlogPost($id)->author->ID && $page->isUserNormal($page->getLoggedInUser())) |
{ |
$page->delBlogPost($id); |
} |
/forums/edit-category.php |
---|
0,0 → 1,59 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Category', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
$cat = $page->getForumCategory($id); |
if ($page->isUserAdmin($page->getLoggedInUser()) && $cat) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="edit-category-do.php" method="POST"> |
<input type="hidden" name="id" value="<?php echo $id; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" value="<?php echo htmlentities($cat->title, ENT_QUOTES); ?>" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><input type="text" name="description" value="<?php echo htmlentities($cat->description, ENT_QUOTES); ?>" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Edit" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
if (!$cat) |
{ |
$page->drawError('No such Forum Category, #' . $id); |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
$page->drawFooter(); |
?> |
/forums/index.php |
---|
1,14 → 1,87 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Forums', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<br /><p class="bold">This page is currently under construction.</p>'); |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Forums', '../'); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
if (!is_numeric($parentID)) |
{ |
$parentID = -1; |
} |
if ($parentID != -1) |
{ |
$page->title = $page->getForumCategory($parentID)->title; |
} |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<p><i>The forums are still under construction.</i></p>'); |
write('<p class="bold">'); |
if ($parentID != -1) |
{ |
write('<a href="index.php?parentID=-1">Back to root</a>'); |
} |
if ($page->isLoggedIn() && $page->isUserNormal($page->getLoggedInUser())) |
{ |
if ($parentID != -1) |
{ |
write(' · '); |
} |
write('<a href="add-post.php?categoryID=' . $parentID . '">Add Post</a>'); |
} |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if ($page->isLoggedIn()) |
{ |
write(' · '); |
} |
write('<a href="add-category.php?parentID=' . $parentID . '">Add Category</a>'); |
} |
write('</p><br />'); |
$ids = $page->findIDs('ForumCategories', 'WHERE ParentID = "' . $parentID . '" ORDER BY Title ASC'); |
if (count($ids) >= 1) |
{ |
write('<h3>Categories</h3>'); |
} |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumCategory = $page->getForumCategory($ids[$i]); |
write('<h4><a href="index.php?parentID=' . $forumCategory->ID . '">' . htmlentities($forumCategory->title, ENT_QUOTES) . '</a></h4>'); |
write('<p>' . htmlentities($forumCategory->description, ENT_QUOTES) . '</p>'); |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
write('<p class="bold"><a href="edit-category.php?id=' . $forumCategory->ID . '">Edit Category</a> · <a href="delete-category-do.php?id=' . $forumCategory->ID . '">Delete Category</a></p>'); |
} |
write('<br />'); |
} |
$ids = $page->findIDs('ForumPosts', 'WHERE CategoryID = "' . $parentID . '" AND ParentID = -1 ORDER BY Title ASC'); |
if (count($ids) >= 1) |
{ |
write('<h3>Topics</h3>'); |
} |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumPost = $page->getForumPost($ids[$i]); |
write('<h4><a href="post.php?id=' . $forumPost->ID . '">' . htmlentities($forumPost->title, ENT_QUOTES) . '</a></h4>'); |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/forums/post.php |
---|
0,0 → 1,45 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Forum Post', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$id = $page->getGetID(); |
$forumPost = $page->getForumPost($id); |
write('<p class="bold"><a href="index.php?parentID=' . $forumPost->category->ID . '">Back to Topics</a></p><br />'); |
write('<h3>' . htmlentities($forumPost->title, ENT_QUOTES) . '</h3>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . htmlentities($forumPost->author->name, ENT_QUOTES) . ' (' . htmlentities($forumPost->author->username, ENT_QUOTES) . ')</h5>'); |
write('<p>' . $page->replaceBBCode($forumPost->content) . '</p>'); |
if ($page->isLoggedIn()) |
{ |
write('<p class="bold"><a href="add-post.php?parentID=' . $id . '">Post Reply</a>'); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID) |
{ |
write(' · <a href="edit-post.php?id=' . $id . '">Edit Post</a>'); |
write(' · <a href="delete-post-do.php?id=' . $id . '">Delete Post</a>'); |
} |
write('</p>'); |
} |
write('<br />'); |
$ids = $page->findIDs('ForumPosts', 'WHERE ParentID = "' . $id . '" ORDER BY DatePosted ASC'); |
for ($i = 0; $i < count($ids); $i++) |
{ |
$forumPost = $page->getForumPost($ids[$i]); |
write('<h4>' . htmlentities($forumPost->title, ENT_QUOTES) . '</h4>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $forumPost->datePosted) . ' by ' . htmlentities($forumPost->author->name, ENT_QUOTES) . ' (' . htmlentities($forumPost->author->username, ENT_QUOTES) . ')</h5>'); |
write('<p>' . $page->replaceBBCode($forumPost->content) . '</p>'); |
if ($page->isUserAdmin($page->getLoggedInUser()) || $forumPost->author->ID == $page->getLoggedInUser()->ID) |
{ |
write('<p class="bold"><a href="edit-post.php?id=' . $ids[$i] . '">Edit Post</a>'); |
write(' · <a href="delete-post-do.php?id=' . $ids[$i] . '">Delete Post</a></p>'); |
} |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/forums/add-post-do.php |
---|
0,0 → 1,39 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->checkLoggedIn(); |
$parentID = $_POST['parentID']; |
if (empty($parentID)) { |
$parentID = -1; |
} |
$categoryID = $_POST['categoryID']; |
if (empty($categoryID)) { |
$parentID = -1; |
} |
$title = $_POST['title']; |
$content = $_POST['content']; |
if (!$page->isUserNormal($page->getLoggedInUser())) { |
$page->redirect('add-post.php?error=You do not have permission to access this page'); |
} |
if (empty($title)) { |
$page->redirect('add-post.php?error=No Title Specified'); |
} |
if (empty($title)) { |
$page->redirect('add-post.php?error=No Content Specified'); |
} |
$args = array($page->getLoggedInUser()->ID, $categoryID, $parentID, $title, $content); |
$page->query("INSERT INTO ForumPosts VALUES (0, ?, ?, ?, ?, ?, NOW(), FALSE)", $args); |
$page->redirect('index.php?parentID=' . $categoryID); |
?> |
/forums/delete-category-do.php |
---|
0,0 → 1,19 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Delete Category', '../'); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
if ($page->isUserAdmin($page->getLoggedInUser())) { |
$page->query("DELETE FROM ForumCategories WHERE ID = ?", array($id)); |
$page->redirect('index.php'); |
} else { |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/edit-category-do.php |
---|
0,0 → 1,26 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Edit Category', '../'); |
$page->checkLoggedIn(); |
$id = $page->getPostID(); |
$title = $_POST['title']; |
$description = $_POST['description']; |
if ($page->isUserAdmin($page->getLoggedInUser())) { |
if (empty($title)) { |
$page->redirect('edit-category.php?error=No Title Specified'); |
} |
$args = array($title, $description, $id); |
$page->query("UPDATE ForumCategories SET Title = ?, Description = ? WHERE ID = ?", $args); |
$page->redirect('index.php'); |
} else { |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/add-category-do.php |
---|
0,0 → 1,28 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->checkLoggedIn(); |
$parentID = $_POST['parentID']; |
if (empty($parentID)) { |
$parentID = -1; |
} |
$title = $_POST['title']; |
$description = $_POST['description']; |
if ($page->isUserAdmin($page->getLoggedInUser())) { |
if (empty($title)) { |
$page->redirect('add-category.php?error=No Title Specified'); |
} |
$page->query("INSERT INTO ForumCategories VALUES (0, ?, ?, ?)", array($parentID, $title, $description)); |
$page->redirect('index.php?parentID=' . $parentID); |
} else { |
$page->drawError('You do not have permission to access this page.'); |
} |
?> |
/forums/delete-post-do.php |
---|
0,0 → 1,23 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Delete Post', '../'); |
$page->checkLoggedIn(); |
$id = $page->getGetID(); |
$post = $page->getForumPost($id); |
if (($page->isUserAdmin($page->getLoggedInUser()) || $post->author->ID == $page->getLoggedInUser()->ID) && $post && $page->isUserNormal($page->getLoggedInUser())) { |
$page->query("DELETE FROM ForumPosts WHERE ID = ?", array($id)); |
$page->redirect('index.php'); |
} else { |
if (!$post) { |
$page->drawError('No such forum post, #' . $id); |
} else { |
$page->drawError('You do not have permission to access this page.'); |
} |
} |
?> |
/forums/add-post.php |
---|
0,0 → 1,62 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Post', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
$categoryID = $_GET['categoryID']; |
if (empty($categoryID)) |
{ |
$categoryID = -1; |
} |
if ($page->isLoggedIn() && $page->isUserNormal($page->getLoggedInUser)) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="add-post-do.php" method="POST"> |
<input type="hidden" name="parentID" value="<?php echo $parentID; ?>" /> |
<input type="hidden" name="categoryID" value="<?php echo $categoryID; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Content: </td> |
<td><textarea name="content"></textarea></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Add" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/forums/add-category.php |
---|
0,0 → 1,55 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Add Category', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
$page->checkLoggedIn(); |
$parentID = $_GET['parentID']; |
if (empty($parentID)) |
{ |
$parentID = -1; |
} |
if ($page->isUserAdmin($page->getLoggedInUser())) |
{ |
if (isset($_GET['error'])) |
{ |
$page->drawError($_GET['error'], false); |
} |
?> |
<form action="add-category-do.php" method="POST"> |
<input type="hidden" name="parentID" value="<?php echo $parentID; ?>" /> |
<table> |
<tr> |
<td class="bold">Title: </td> |
<td><input type="text" name="title" /></td> |
</tr> |
<tr> |
<td class="bold">Description: </td> |
<td><input type="text" name="description" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" value="Add" /></td> |
</tr> |
</table> |
</form> |
<?php |
} |
else |
{ |
$page->drawError('You do not have permission to access this page.'); |
} |
$page->drawFooter(); |
?> |
/index.php |
---|
1,39 → 1,42 |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Home'); |
$page->drawHeader(); |
write('<h3>Pages</h3>'); |
$page->drawMenuItem('Biggles', '/~biggles/'); |
$page->drawMenuItem('Freddie', '/~freddie/'); |
$page->drawMenuItem('Muzer', '/~muzer/'); |
$page->drawMenuItem('Sh4rk', '/~szabot/'); |
$page->drawMenuItem('Tom', '/~tom/'); |
$page->drawMiddle(); |
?> |
<p class="bold">Welcome to Tim32!</p> |
<p>Tim32 is a 10 year-old laptop running Ubuntu Server Edition 10.04.</p> |
<br /> |
<h3>Latest Blog Posts</h3> |
<?php |
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 ORDER BY DatePosted DESC'); |
for ($i = 0; $i < 5 && $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$post = $page->getBlogPost($id); |
write('<h4>' . $post->title. '</h4>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . $post->user->name . ' (' . $post->user->username . ')</h5>'); |
write('<p>' . $post->content . '</p>'); |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
<?php |
require '_taios.php'; |
$page = new Taios_Page('Home'); |
$page->drawHeader(); |
$page->drawMiddle(); |
?> |
<p class="bold">Welcome to Tim32!</p> |
<?php |
write('<p>Tim32 is a ' . (date("Y") - 2000) . '-year-old laptop running Ubuntu Server Edition 14.04.</p>'); |
write('<p>On the other hand, Tim36 (which is serving this page) is a ' . (date("Y") - 2007) . '-year-old laptop running Ubuntu Server Edition 10.04.</p>'); |
?> |
<p>By using this website, you hereby accept cookies being stored on your computer.</p> |
<br /> |
<h3 title="Take the Tim32 challenge: http://tim32.org/challenge/">Latest Blog Posts</h3> |
<p><a href="blog/rss.php">Rss Feed</a></p> |
<?php |
$ids = $page->findIDs('BlogPosts', 'WHERE ParentID = -1 AND Category != "Drafts" ORDER BY DatePosted DESC'); |
for ($i = 0; $i < 4 && $i < count($ids); $i++) |
{ |
$id = $ids[$i]; |
$post = $page->getBlogPost($id); |
$comment_count = 0; |
$ids2 = $page->findIDs('BlogPosts', 'WHERE ParentID="' . $id . '"'); |
write('<a href="blog/post.php?id=' . $id . '"><h3>' . htmlentities($post->title, ENT_QUOTES). '</h3></a>'); |
write('<h5 style="color: #666666;">Posted On ' . date('l j F Y', $post->datePosted) . ' by ' . htmlentities($post->user->name, ENT_QUOTES) . ' (' . htmlentities($post->user->username, ENT_QUOTES) . ')</h5>'); |
write('<p>' . $page->replaceBBCode($post->content) . '</p>'); |
write('<h5 style="color: #666666;">' . count($ids2) . ' Comments</h5>'); |
write('<br />'); |
} |
$page->drawFooter(); |
?> |
/photos/album.php |
---|
0,0 → 1,119 |
<?php |
require '../_taios.php'; |
function getImageSizes($sourceImageFilePath, $maxResizeWidth, $maxResizeHeight) { |
$size = getimagesize($sourceImageFilePath); |
$origWidth = $size[0]; |
$origHeight = $size[1]; |
$resizedWidth = $origWidth; |
$resizedHeight = $origHeight; |
if ($resizedWidth > $maxResizeWidth) |
{ |
$aspectRatio = $maxResizeWidth / $resizedWidth; |
$resizedWidth = round($aspectRatio * $resizedWidth); |
$resizedHeight = round($aspectRatio * $resizedHeight); |
} |
if ($resizedHeight > $maxResizeHeight) |
{ |
$aspectRatio = $maxResizeHeight / $resizedHeight; |
$resizedWidth = round($aspectRatio * $resizedWidth); |
$resizedHeight = round($aspectRatio * $resizedHeight); |
} |
return array($resizedWidth, $resizedHeight); |
} |
$page = new Taios_Page('Photo Albums', '../'); |
$dirName = $_GET['dir']; |
if (empty($dirName)) |
{ |
$page->redirect('index.php'); |
} |
while (strpos($dirName, '../') !== false) { |
$dirName = str_replace("../", "/", $dirName); |
} |
$page->drawHeader(); |
write('<br /><h3>RSS</h3>'); |
$page->drawMenuItem('RSS Feed', 'photos/rss.php?dir=' . $dirName); |
$page->drawMiddle(); |
write('<p class="bold"><a href="index.php">Back to Photos</a></p><br />'); |
if (file_exists("albums/" . $dirName . "/description.txt")) |
{ |
write('<p>' . $page->replaceBBCode(file_get_contents("albums/" . $dirName . "/description.txt")) . '</p><br />'); |
} |
write('<table>'); |
write('<tr>'); |
$directory = "albums/" . $dirName . "/"; |
$sortOrder = "newestFirst"; |
$results = array(); |
$handler = opendir($directory); |
while ($file = readdir($handler)) |
{ |
if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess" && getimagesize($directory . $file)) |
{ |
$currentModified = filectime($directory . $file); |
$file_names[] = $file; |
$file_dates[] = $currentModified; |
} |
} |
closedir($handler); |
if ($sortOrder == "newestFirst") |
{ |
arsort($file_dates); |
} |
else |
{ |
asort($file_dates); |
} |
$file_names_Array = array_keys($file_dates); |
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; |
$file_dates = array_merge($file_dates); |
$i = 0; |
$indexInArray = 0; |
$i = 0; |
foreach ($file_dates as $$file_dates) |
{ |
$j = $file_names_Array[$indexInArray]; |
$file = $file_names[$j]; |
if ($i >= 3) |
{ |
write('</tr><tr>'); |
$i = 0; |
} |
$filename = $directory . $file; |
$size = getImageSizes($filename, 280, 260); |
write('<td><a href="' . str_replace(" ", "%20", $filename) . '"><img width="' . $size[0] . '" height="' . $size[1] . '" src="' . str_replace(" ", "%20", $filename) . '" /></a></td>'); |
$i++; |
$indexInArray++; |
} |
write('</tr>'); |
write('</table>'); |
$page->drawFooter(); |
?> |
/photos/rss.php |
---|
0,0 → 1,80 |
<?php |
require '../_taios.php'; |
header("Content-type: application/rss+xml"); |
$page = new Taios_Page('Photos RSS Feed', '../'); |
$dirName = $_GET['dir']; |
if (empty($dirName)) |
{ |
$dirName = "Lassitor"; |
} |
while (strpos($dirName, '../') !== false) { |
$dirName = str_replace("../", "/", $dirName); |
} |
write('<?xml version="1.0" encoding="UTF-8" ?>'); |
write('<rss version="2.0">'); |
write('<channel>'); |
write('<title>Tim32 Photo RSS - ' . $dirName . '</title>'); |
write('<description>This is the RSS feed for the Tim32 Photos.</description>'); |
write('<link>http://tim32.org/photos/album.php?dir=' . $dirName . '</link>'); |
$directory = "albums/" . $dirName . "/"; |
$sortOrder = "newestFirst"; |
$results = array(); |
$handler = opendir($directory); |
while ($file = readdir($handler)) |
{ |
if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess" && getimagesize($directory . $file)) |
{ |
$currentModified = filectime($directory . $file); |
$file_names[] = $file; |
$file_dates[] = $currentModified; |
} |
} |
closedir($handler); |
if ($sortOrder == "newestFirst") |
{ |
arsort($file_dates); |
} |
else |
{ |
asort($file_dates); |
} |
$file_names_Array = array_keys($file_dates); |
foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; |
$file_dates = array_merge($file_dates); |
$indexInArray = 0; |
foreach ($file_dates as $date) |
{ |
$j = $file_names_Array[$indexInArray]; |
$file = $file_names[$j]; |
$filename = $directory . $file; |
write('<item>'); |
write('<title>' . $file . '</title>'); |
write('<link>http://tim32.org/photos/' . str_replace(" ", "%20", $filename) . '</link>'); |
write('<guid>id_' . $file . '</guid>'); |
write('<pubDate>' . date('D, d M Y H:i:s O', $date). '</pubDate>'); |
write('<description><![CDATA[<img src="http://tim32.org/photos/' . str_replace(" ", "%20", $filename) . '" />]]></description>'); |
write('</item>'); |
$indexInArray++; |
} |
write('</channel>'); |
write('</rss>'); |
?> |
/photos/index.php |
---|
1,14 → 1,31 |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Photos', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<br /><p class="bold">This page is currently under construction.</p>'); |
$page->drawFooter(); |
?> |
<?php |
require '../_taios.php'; |
$page = new Taios_Page('Photo Albums', '../'); |
$page->drawHeader(); |
$page->drawMiddle(); |
write('<p>Here we have all sorts of photos from Tim32.</p><br />'); |
$dirs = array(); |
$dir = dir('albums/'); |
while (($file = $dir->read()) !== false) |
{ |
array_push($dirs, $file); |
} |
asort($dirs); |
foreach ($dirs as $file) |
{ |
if ($file[0] != '.') |
{ |
write('<p><a href="album.php?dir=' . $file . '">' . $file . '</a></p>'); |
} |
} |
$page->drawFooter(); |
?> |
/photos/albums/Lassitor/Lassitor.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/photos/albums/Lassitor/Lassitor.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: photos/albums/Lassitor/Lassitor-3d.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: photos/albums/Lassitor/Lassitor-3d.png |
=================================================================== |
--- photos/albums/Lassitor/Lassitor-3d.png (nonexistent) |
+++ photos/albums/Lassitor/Lassitor-3d.png (revision 522) |
/photos/albums/Lassitor/Lassitor-3d.png | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Property changes: | ||||||||||||||||||||||||||||||||||||||||||||
Added: svn:mime-type | ||||||||||||||||||||||||||||||||||||||||||||
## -0,0 +1 ## | ||||||||||||||||||||||||||||||||||||||||||||
+application/octet-stream | ||||||||||||||||||||||||||||||||||||||||||||
\ No newline at end of property | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/edit-project.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/edit-project.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/edit-project.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,78 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Project', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$project = $page->getProject($page->getGetID()); | ||||||||||||||||||||||||||||||||||||||||||||
+if (!$project) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('No such project, #' . $page->getGetID()); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ Here you can edit a project from the Tim32 database. | ||||||||||||||||||||||||||||||||||||||||||||
+ Leave an input blank to keep it as it is. | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (isset($_GET['error'])) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError($_GET['error'], false); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/index.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/index.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/index.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,14 +1,60 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Projects', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-write(' This page is currently under construction. '); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Projects', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+write(' Here you can find all the projects that are created by members of Tim32! '); | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$ids = $page->findIDs('Projects', 'ORDER BY LastUpdate DESC'); | ||||||||||||||||||||||||||||||||||||||||||||
+for ($i = 0; $i < count($ids); $i++) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $id = $ids[$i]; | ||||||||||||||||||||||||||||||||||||||||||||
+ $project = $page->getProject($id); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ write('' . htmlentities($project->title, ENT_QUOTES) . ''); | ||||||||||||||||||||||||||||||||||||||||||||
+ write('
| ||||||||||||||||||||||||||||||||||||||||||||
+ if ($page->isUserAdmin($page->getLoggedInUser()) || $user->ID == $project->author->ID) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/edit-project-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/edit-project-do.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/edit-project-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,58 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Project', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkCSRFToken($page->getLoggedInUser()->ID, $_POST['csrftoken']); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$project = $page->getProject($page->getPostID()); | ||||||||||||||||||||||||||||||||||||||||||||
+if (!$project) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('No such project, #' . $page->getPostID()); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$title = $_POST['title']; | ||||||||||||||||||||||||||||||||||||||||||||
+$description = $_POST['description']; | ||||||||||||||||||||||||||||||||||||||||||||
+$logoURL = $_POST['logourl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$websiteURL = $_POST['websiteurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$downloadURL = $_POST['downloadurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$latestVersion = $_POST['latestversion']; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+$user = $page->getLoggedInUser(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($title)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET Title = ? WHERE ID = ?", array($title, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($description)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET Description = ? WHERE ID = ?", array($description, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($logoURL)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET LogoURL = ? WHERE ID = ?", array($logoURL, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($websiteURL)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET WebsiteURL = ? WHERE ID = ?", array($websiteURL, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($downloadURL)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET DownloadURL = ? WHERE ID = ?", array($downloadURL, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!empty($latestVersion)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET LatestVersion = ? WHERE ID = ?", array($latestVersion, $project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("UPDATE Projects SET LastUpdate = NOW() WHERE ID = ?", array($project->ID)); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+} else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/add-project-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/add-project-do.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/add-project-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,35 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Add Project', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkCSRFToken($page->getLoggedInUser()->ID, $_POST['csrftoken']); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$title = $_POST['title']; | ||||||||||||||||||||||||||||||||||||||||||||
+$description = $_POST['description']; | ||||||||||||||||||||||||||||||||||||||||||||
+$logoURL = $_POST['logourl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$websiteURL = $_POST['websiteurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$downloadURL = $_POST['downloadurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+$latestVersion = $_POST['latestversion']; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+$user = $page->getLoggedInUser(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($title)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('add-project.php?error=No Title Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($description)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('add-project.php?error=No Title Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($user)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $args = array($user->ID, $title, $description, $logoURL, $downloadURL, $websiteURL, $latestVersion); | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("INSERT INTO Projects VALUES (0, ?, ?, ?, ?, ?, ?, ?, NOW())", $args); | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+} else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/add-project.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/add-project.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/add-project.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,70 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Add Project', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ Here you can add a project to the Tim32 database. | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (isset($_GET['error'])) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError($_GET['error'], false); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: projects/delete-project-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- projects/delete-project-do.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ projects/delete-project-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,22 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Delete Project', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+$id = $page->getGetID(); | ||||||||||||||||||||||||||||||||||||||||||||
+$project = $page->getProject($id); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (($page->isUserAdmin($page->getLoggedInUser()) || $page->getLoggedInUser()->ID == $project->author->ID) && $project) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->query("DELETE FROM Projects WHERE ID = ?", array($id)); | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+} else { | ||||||||||||||||||||||||||||||||||||||||||||
+ if (!$project) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('No such project, #' . $id); | ||||||||||||||||||||||||||||||||||||||||||||
+ } else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: tcp.js | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- tcp.js (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ tcp.js (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,51 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+function updateResult(box, text) { | ||||||||||||||||||||||||||||||||||||||||||||
+ box.find(".tcp_inner_result").html("Loading..."); | ||||||||||||||||||||||||||||||||||||||||||||
+ $.get('//tim32.org/timlan/lookup/tcppop.php?totr=' + text, function(data) { | ||||||||||||||||||||||||||||||||||||||||||||
+ box.find(".tcp_inner_result").html(data); | ||||||||||||||||||||||||||||||||||||||||||||
+ }); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+function openBox(box) { | ||||||||||||||||||||||||||||||||||||||||||||
+ var text = box.attr("data-text"); | ||||||||||||||||||||||||||||||||||||||||||||
+ box.append(" | ||||||||||||||||||||||||||||||||||||||||||||
+ box.children(".tcp_inner").hide().fadeIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+ updateResult(box, text); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ box.find("input[type=submit]").click(function() { | ||||||||||||||||||||||||||||||||||||||||||||
+ updateResult(box, box.find("input[type=text]").val()); | ||||||||||||||||||||||||||||||||||||||||||||
+ return false; | ||||||||||||||||||||||||||||||||||||||||||||
+ }); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ box.find("input[type=text]").change(function() { | ||||||||||||||||||||||||||||||||||||||||||||
+ updateResult(box, $(this).val()); | ||||||||||||||||||||||||||||||||||||||||||||
+ }); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+function closeBox(box) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $(box).children(".tcp_inner").fadeOut(function() { | ||||||||||||||||||||||||||||||||||||||||||||
+ $(this).remove(); | ||||||||||||||||||||||||||||||||||||||||||||
+ }); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$(document).ready(function() { | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $(".tcp .tcp_button").on("click", function() { | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ var box = $(this).parent(); | ||||||||||||||||||||||||||||||||||||||||||||
+ var s = box.attr("data-status"); | ||||||||||||||||||||||||||||||||||||||||||||
+ if (s == "closed") { | ||||||||||||||||||||||||||||||||||||||||||||
+ box.attr("data-status", "open"); | ||||||||||||||||||||||||||||||||||||||||||||
+ $(this).attr("src", "//tim32.org/timlan/noTCP.png"); | ||||||||||||||||||||||||||||||||||||||||||||
+ $(this).attr("title", "Close TCP Editor"); | ||||||||||||||||||||||||||||||||||||||||||||
+ openBox(box); | ||||||||||||||||||||||||||||||||||||||||||||
+ } else { | ||||||||||||||||||||||||||||||||||||||||||||
+ box.attr("data-status", "closed"); | ||||||||||||||||||||||||||||||||||||||||||||
+ $(this).attr("src", "//tim32.org/timlan/goTCP.png"); | ||||||||||||||||||||||||||||||||||||||||||||
+ $(this).attr("title", "Open TCP Editor"); | ||||||||||||||||||||||||||||||||||||||||||||
+ closeBox(box); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ }); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+}); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: wiki/edit-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- wiki/edit-do.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ wiki/edit-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,63 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (get_magic_quotes_gpc()) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); | ||||||||||||||||||||||||||||||||||||||||||||
+ while (list($key, $val) = each($process)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ foreach ($val as $k => $v) { | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process[$key][$k]); | ||||||||||||||||||||||||||||||||||||||||||||
+ if (is_array($v)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = $v; | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[] = &$process[$key][stripslashes($k)]; | ||||||||||||||||||||||||||||||||||||||||||||
+ } else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = stripslashes($v); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$pageName = $_POST['page']; | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Page - ' . $pageName, '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ while (strpos($pageName, '../') !== false) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = str_replace("../", "/", $pageName); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ if(!is_dir(dirname($filename))) | ||||||||||||||||||||||||||||||||||||||||||||
+ mkdir(dirname($filename), 0777, true); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $fp = @fopen($filename, 'w'); | ||||||||||||||||||||||||||||||||||||||||||||
+ if ($fp) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ fwrite($fp, $_POST['content']); | ||||||||||||||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('index.php?page=' . $pageName); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ else | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('Failed to write file.'); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: wiki/edit.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- wiki/edit.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ wiki/edit.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,72 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+if (get_magic_quotes_gpc()) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); | ||||||||||||||||||||||||||||||||||||||||||||
+ while (list($key, $val) = each($process)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ foreach ($val as $k => $v) { | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process[$key][$k]); | ||||||||||||||||||||||||||||||||||||||||||||
+ if (is_array($v)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = $v; | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[] = &$process[$key][stripslashes($k)]; | ||||||||||||||||||||||||||||||||||||||||||||
+ } else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = stripslashes($v); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+$pageName = $_GET['page']; | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Edit Page - ' . htmlentities($pageName, ENT_QUOTES), '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->checkLoggedIn(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ while (strpos($pageName, '../') !== false) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = str_replace("../", "/", $pageName); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $content = ""; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $fp = @fopen($filename, 'r'); | ||||||||||||||||||||||||||||||||||||||||||||
+ if ($fp) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ $content = fread($fp, filesize($filename)); | ||||||||||||||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError('You do not have permission to access this page.'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: wiki/index.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- wiki/index.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ wiki/index.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,14 +1,102 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Wiki', '../'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-write(' This page is currently under construction. '); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+function endswith($string, $test) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $strlen = strlen($string); | ||||||||||||||||||||||||||||||||||||||||||||
+ $testlen = strlen($test); | ||||||||||||||||||||||||||||||||||||||||||||
+ if ($testlen > $strlen) return false; | ||||||||||||||||||||||||||||||||||||||||||||
+ return substr_compare($string, $test, -$testlen) === 0; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '../_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+if (get_magic_quotes_gpc()) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); | ||||||||||||||||||||||||||||||||||||||||||||
+ while (list($key, $val) = each($process)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ foreach ($val as $k => $v) { | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process[$key][$k]); | ||||||||||||||||||||||||||||||||||||||||||||
+ if (is_array($v)) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = $v; | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[] = &$process[$key][stripslashes($k)]; | ||||||||||||||||||||||||||||||||||||||||||||
+ } else { | ||||||||||||||||||||||||||||||||||||||||||||
+ $process[$key][stripslashes($k)] = stripslashes($v); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ unset($process); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+$pageName = $_GET['page']; | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($pageName)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = 'Index'; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Wiki · ' . htmlentities($pageName, ENT_QUOTES), '../'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (isset($_GET['random'])) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $results = array(); | ||||||||||||||||||||||||||||||||||||||||||||
+ $handler = opendir('pages/'); | ||||||||||||||||||||||||||||||||||||||||||||
+ while ($file = readdir($handler)) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ if ($file != '.' && $file != '..' && endswith($file, ".txt")) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ $results[] = substr($file, 0, count($file) - 5); | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ $index = rand() % count($results); | ||||||||||||||||||||||||||||||||||||||||||||
+ $result = $results[$index]; | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('index.php?page=' . $result); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+write('Wiki'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Index', 'wiki/index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Random Page', 'wiki/index.php?random'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($page->isUserGM($page->getLoggedInUser())) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' '); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+while (strpos($pageName, '../') !== false) { | ||||||||||||||||||||||||||||||||||||||||||||
+ $pageName = str_replace("../", "/", $pageName); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$filename = 'pages/' . $pageName . '.txt'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$fp = @fopen($filename, 'r'); | ||||||||||||||||||||||||||||||||||||||||||||
+if ($fp) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' ' . $page->replaceBBCode(fread($fp, filesize($filename))) . ' '); | ||||||||||||||||||||||||||||||||||||||||||||
+ fclose($fp); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' This page is empty. '); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if(is_dir('pages/' . $pageName)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' Directory listing of ' . htmlentities($pageName, ENT_QUOTES) . ': '); | ||||||||||||||||||||||||||||||||||||||||||||
+ write('
| ||||||||||||||||||||||||||||||||||||||||||||
+ $dir = opendir('pages/' . $pageName); | ||||||||||||||||||||||||||||||||||||||||||||
+ if($dir) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ while (($file = readdir($dir)) !== false) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ if($file != '.' && $file != '..' && (preg_match('/\.txt$/', $file) || is_dir('pages/' . $pageName . '/' . $file))) | ||||||||||||||||||||||||||||||||||||||||||||
+ { | ||||||||||||||||||||||||||||||||||||||||||||
+ $file = preg_replace('/\.txt$/', '', $file); | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ } | ||||||||||||||||||||||||||||||||||||||||||||
+ write(''); | ||||||||||||||||||||||||||||||||||||||||||||
+ write(' End of directory listing '); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: _config.dummy.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- _config.dummy.php (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ _config.dummy.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,11 @@ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+define('MYSQL_HOST', 'localhost'); | ||||||||||||||||||||||||||||||||||||||||||||
+define('MYSQL_USER', 'taios'); | ||||||||||||||||||||||||||||||||||||||||||||
+define('MYSQL_PASSWORD', 'dummy'); | ||||||||||||||||||||||||||||||||||||||||||||
+define('ALLOW_FILES', false); | ||||||||||||||||||||||||||||||||||||||||||||
+define('ROOT_PATH', 'http://wolves.org/~dummy/taios/'); | ||||||||||||||||||||||||||||||||||||||||||||
+define('RECAPTCHA_PUBLICKEY', 'dummy'); | ||||||||||||||||||||||||||||||||||||||||||||
+define('RECAPTCHA_PRIVATEKEY', 'dummy'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: install.sql | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- install.sql (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ install.sql (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,75 +1,74 @@ | ||||||||||||||||||||||||||||||||||||||||||||
-DROP DATABASE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE DATABASE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-USE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE Users | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NULL AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- AccessID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Username TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Password TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- EmailAddress TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Name TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- ChallengeID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE BlogPosts | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- ParentID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Content TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- DatePosted DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
- Category TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Spam BOOLEAN, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE Projects | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Description TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- LogoURL TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- WebsiteURL TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- LatestVersion TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE ForumCategories | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- ParentID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Description TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE ForumTopics | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- CategoryID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- DatePosted DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-CREATE TABLE ForumPosts | ||||||||||||||||||||||||||||||||||||||||||||
-( | ||||||||||||||||||||||||||||||||||||||||||||
- ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
- AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- TopicID INT, | ||||||||||||||||||||||||||||||||||||||||||||
- Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- Content TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
- DatePosted DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
- Spam BOOLEAN, | ||||||||||||||||||||||||||||||||||||||||||||
- PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
-); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-INSERT INTO Users VALUES (1, 0, "admin", SHA1("password"), "admins@tim32.org", "Tim32 Admin", 0); | ||||||||||||||||||||||||||||||||||||||||||||
-INSERT INTO BlogPosts VALUES(1, -1, 1, "Welcome to Tim32!", "Welcome to the new Tim32 website! It has had a complete design re-think to make it simpler and easier to use!", NOW(), "Tim32", FALSE); | ||||||||||||||||||||||||||||||||||||||||||||
+DROP DATABASE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE DATABASE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+USE Tim32; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE TABLE Users | ||||||||||||||||||||||||||||||||||||||||||||
+( | ||||||||||||||||||||||||||||||||||||||||||||
+ ID INT NOT NULL AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
+ AccessID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Username TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Password TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ EmailAddress TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Name TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Salt TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ CSRFToken TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ ChallengeID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
+); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE TABLE BlogPosts | ||||||||||||||||||||||||||||||||||||||||||||
+( | ||||||||||||||||||||||||||||||||||||||||||||
+ ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
+ ParentID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Content TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ DatePosted DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
+ Category TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Spam BOOLEAN, | ||||||||||||||||||||||||||||||||||||||||||||
+ PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
+); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE TABLE Projects | ||||||||||||||||||||||||||||||||||||||||||||
+( | ||||||||||||||||||||||||||||||||||||||||||||
+ ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
+ AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Description TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ LogoURL TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ DownloadURL TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ WebsiteURL TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ LatestVersion TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ LastUpdate DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
+ PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
+); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE TABLE ForumCategories | ||||||||||||||||||||||||||||||||||||||||||||
+( | ||||||||||||||||||||||||||||||||||||||||||||
+ ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
+ ParentID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Description TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
+); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+CREATE TABLE ForumPosts | ||||||||||||||||||||||||||||||||||||||||||||
+( | ||||||||||||||||||||||||||||||||||||||||||||
+ ID INT NOT NUll AUTO_INCREMENT, | ||||||||||||||||||||||||||||||||||||||||||||
+ AuthorID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ CategoryID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ ParentID INT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Title TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ Content TEXT, | ||||||||||||||||||||||||||||||||||||||||||||
+ DatePosted DATETIME, | ||||||||||||||||||||||||||||||||||||||||||||
+ Spam BOOLEAN, | ||||||||||||||||||||||||||||||||||||||||||||
+ PRIMARY KEY(ID) | ||||||||||||||||||||||||||||||||||||||||||||
+); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO Users VALUES (1, 0, "admin", SHA1("passwordrostok"), "admins@tim32.org", "Tim32 Admin", "rostok", "rostok", 0); | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO BlogPosts VALUES(1, -1, 1, "Welcome to Tim32!", "Welcome to the new Tim32 website! It has had a complete design re-think to make it simpler and easier to use!", NOW(), "Tim32", FALSE); | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO Projects VALUES (1, 1, "TAIOS", "TAIOS (The All In One System) is a PHP based system to make the Tim32 website very self contained and altogether.", "http://websvn.kde.org/*checkout*/trunk/kdesupport/oxygen-icons/64x64/categories/applications-internet.png", "", "http://tim32.org/~tom/taios/", "SVN", NOW()); | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO ForumCategories VALUES (1, -1, "Tim32", "Talk about Tim32 in here"); | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO ForumCategories VALUES (2, 1, "TAIOS", "Talk about TAIOS in here"); | ||||||||||||||||||||||||||||||||||||||||||||
+INSERT INTO ForumPosts VALUES (1, 1, 2, -1, "TAIOS Almost Finished", "As I speak we are currently in the process of finilising TAIOS so it works perfectly! I'm pleased to accounce that TAIOS should be ready within the next week or so! :D", NOW(), FALSE); | ||||||||||||||||||||||||||||||||||||||||||||
Index: register-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- register-do.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ register-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,34 +1,52 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$username = $_POST['username']; | ||||||||||||||||||||||||||||||||||||||||||||
-$password = $_POST['password']; | ||||||||||||||||||||||||||||||||||||||||||||
-$password2 = $_POST['password2']; | ||||||||||||||||||||||||||||||||||||||||||||
-$email = $_POST['email']; | ||||||||||||||||||||||||||||||||||||||||||||
-$name = $_POST['name']; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-if (empty($username)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('register.php?error=No Username Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
-if (empty($password)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('register.php?error=No Password Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
-if (empty($password2)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('register.php?error=No Repeat Password Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
-if ($password != $password2) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('register.php?error=Passwords do not match'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->query('INSERT INTO Users (AccessID, Username, Password, EmailAddress, Name, ChallengeID) VALUES (2, "' . $username . '", "' . sha1($password) . '", "' . $email . '", "' . $name . '", 0)'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->redirect('login.php'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+require_once '_recaptchalib.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$username = $_POST['username']; | ||||||||||||||||||||||||||||||||||||||||||||
+$password = $_POST['password']; | ||||||||||||||||||||||||||||||||||||||||||||
+$password2 = $_POST['password2']; | ||||||||||||||||||||||||||||||||||||||||||||
+$email = $_POST['email']; | ||||||||||||||||||||||||||||||||||||||||||||
+$name = $_POST['name']; | ||||||||||||||||||||||||||||||||||||||||||||
+$maths = $_POST['maths']; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($username)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=No Username Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($password)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=No Password Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($password2)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=No Repeat Password Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+if ($password != $password2) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=Passwords do not match'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+if ($maths != '75') | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=Incorrect maths answer'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$resp = recaptcha_check_answer(RECAPTCHA_PRIVATEKEY, $_SERVER["REMOTE_ADDR"], | ||||||||||||||||||||||||||||||||||||||||||||
+ $_POST["recaptcha_challenge_field"], | ||||||||||||||||||||||||||||||||||||||||||||
+ $_POST["recaptcha_response_field"]); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (!$resp->is_valid) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('register.php?error=Incorrect reCAPTCHA response'); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$salt = $username . "horses"; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$args = array(2, $username, $page->saltAndBurn($password, $salt), $salt, $email, $name, $page->rndString(), 0); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->query("INSERT INTO Users (AccessID, Username, Password, Salt, EmailAddress, Name, CSRFToken, ChallengeID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", $args); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->redirect('login.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: login-do.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- login-do.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ login-do.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,37 +1,42 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$username = $_POST['username']; | ||||||||||||||||||||||||||||||||||||||||||||
-$password = $_POST['password']; | ||||||||||||||||||||||||||||||||||||||||||||
-$remember = $_POST['remember'] == 'yes'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-if (empty($username)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('login.php?error=No Username Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
-if (empty($password)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('login.php?error=No Password Specified'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$user = $page->getUserByUsername($username); | ||||||||||||||||||||||||||||||||||||||||||||
-if (!$user || $user->password != sha1($password)) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->redirect('login.php?error=Incorrect Username or Password'); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$expires = -1; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-if ($remember) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $expires = time() + 60 * 60 * 24 * 30; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-setcookie('Tim32_Login', $user->username . '|~|' . $user->password, $expires, '/'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->redirect('index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$username = $_POST['username']; | ||||||||||||||||||||||||||||||||||||||||||||
+$password = $_POST['password']; | ||||||||||||||||||||||||||||||||||||||||||||
+$remember = $_POST['remember'] == 'yes'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if(strpos($_POST['oldurl'], "tim32.org") === FALSE || strpos($_POST['oldurl'], "login") !== FALSE) | ||||||||||||||||||||||||||||||||||||||||||||
+ $redirurl = "http://tim32.org"; | ||||||||||||||||||||||||||||||||||||||||||||
+else | ||||||||||||||||||||||||||||||||||||||||||||
+ $redirurl = $_POST['oldurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($username)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('login.php?error=No Username Specified&oldurl=' . urlencode($redirurl)); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+if (empty($password)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('login.php?error=No Password Specified&oldurl=' . urlencode($redirurl)); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$user = $page->getUserByUsername($username); | ||||||||||||||||||||||||||||||||||||||||||||
+if (!$user || $user->password !== $page->saltAndBurn($password, $user->salt)) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->redirect('login.php?error=Incorrect Username or Password&oldurl=' . urlencode($redirurl)); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$expires = -1; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if ($remember) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $expires = time() + 60 * 60 * 24 * 30; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+setcookie('Tim32_Login', $user->username . '|~|' . $user->password, $expires, '/'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->redirect($redirurl); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: styles.css | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- styles.css (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ styles.css (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,132 +1,216 @@ | ||||||||||||||||||||||||||||||||||||||||||||
-body { | ||||||||||||||||||||||||||||||||||||||||||||
- background-color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000000; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- font-family: Droid Sans, Tahoma, sans-serif; | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 11pt; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-h1 { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 28pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000089; | ||||||||||||||||||||||||||||||||||||||||||||
- border-bottom: 1px solid #000000; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-h2 { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 20pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #00004B; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-h3 { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 16pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 10px; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000055; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-h4 { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 12pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 12px; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #00005F; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-h5 { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 14px; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000069; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-p, table, span { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 11pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 16px; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-a { | ||||||||||||||||||||||||||||||||||||||||||||
- text-decoration: none; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000050; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-a:hover { | ||||||||||||||||||||||||||||||||||||||||||||
- text-decoration: underline; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-input { | ||||||||||||||||||||||||||||||||||||||||||||
- border: 1px solid #000000; | ||||||||||||||||||||||||||||||||||||||||||||
- color: #000000; | ||||||||||||||||||||||||||||||||||||||||||||
- background-color: #B5D7FF; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-table { | ||||||||||||||||||||||||||||||||||||||||||||
- border: 1px solid #222222; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-td { | ||||||||||||||||||||||||||||||||||||||||||||
- padding: 3px; | ||||||||||||||||||||||||||||||||||||||||||||
- border: 1px solid #888888; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.sidebar { | ||||||||||||||||||||||||||||||||||||||||||||
- left: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- position: fixed; | ||||||||||||||||||||||||||||||||||||||||||||
- padding: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- padding-left: 32px; | ||||||||||||||||||||||||||||||||||||||||||||
- border-right: 1px solid #000089; | ||||||||||||||||||||||||||||||||||||||||||||
- background-color: #FFFF73; | ||||||||||||||||||||||||||||||||||||||||||||
- background-image: url('data/sidebar-gradient.png'); | ||||||||||||||||||||||||||||||||||||||||||||
- background-repeat: repeat-x; | ||||||||||||||||||||||||||||||||||||||||||||
- background-position: center bottom; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.sidebar-header { | ||||||||||||||||||||||||||||||||||||||||||||
- left: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- width: 140px; | ||||||||||||||||||||||||||||||||||||||||||||
- padding: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
- text-align: right; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.sidebar-menu { | ||||||||||||||||||||||||||||||||||||||||||||
- text-align: right; | ||||||||||||||||||||||||||||||||||||||||||||
- padding: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.sidebar-menu h3 { | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.sidebar-menu p { | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 12pt; | ||||||||||||||||||||||||||||||||||||||||||||
- margin: 4px; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.content { | ||||||||||||||||||||||||||||||||||||||||||||
- left: 200px; | ||||||||||||||||||||||||||||||||||||||||||||
- top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
- position: absolute; | ||||||||||||||||||||||||||||||||||||||||||||
- margin-right: 32px; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.bold { | ||||||||||||||||||||||||||||||||||||||||||||
- font-weight: bold; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.indent { | ||||||||||||||||||||||||||||||||||||||||||||
- margin-left: 14px; | ||||||||||||||||||||||||||||||||||||||||||||
- border-left: 1px solid #BBBBBB; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-.code { | ||||||||||||||||||||||||||||||||||||||||||||
- border: 1px solid #333333; | ||||||||||||||||||||||||||||||||||||||||||||
- background-color: #DDDDDD; | ||||||||||||||||||||||||||||||||||||||||||||
- font-family: Droid Sans Mono, Monospace, Fixed; | ||||||||||||||||||||||||||||||||||||||||||||
- font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
+body { | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #000000; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-family: Droid Sans, Tahoma, sans-serif; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ height: 100%; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+h1 { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 28pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+ border-bottom: 1px solid #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+h2 { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 20pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #00004B; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+h3 { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 16pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 10px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #000055; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+h4 { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 12pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 12px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #00005F; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+h5 { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 14px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #000069; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+p, table, span { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 8px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 16px; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+a { | ||||||||||||||||||||||||||||||||||||||||||||
+ text-decoration: none; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #000050; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+a:hover { | ||||||||||||||||||||||||||||||||||||||||||||
+ text-decoration: underline; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+input { | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 1px solid #000000; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #000000; | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color: #B5D7FF; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 4px; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 5px; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 11pt; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+input[type=text], input[type=password] { | ||||||||||||||||||||||||||||||||||||||||||||
+ width: 500px; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+table { | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 1px solid #222222; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+td { | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 3px; | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 1px solid #888888; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+img { | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 2px solid #333333; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+textarea { | ||||||||||||||||||||||||||||||||||||||||||||
+ width: 500px; | ||||||||||||||||||||||||||||||||||||||||||||
+ height: 300px; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.smiley { | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ vertical-align: middle; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar { | ||||||||||||||||||||||||||||||||||||||||||||
+ top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ left: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ position: absolute; | ||||||||||||||||||||||||||||||||||||||||||||
+ float: left; | ||||||||||||||||||||||||||||||||||||||||||||
+ width: 156px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding-left: 32px; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ border-right: 2px solid #000049; | ||||||||||||||||||||||||||||||||||||||||||||
+ border-bottom: 2px solid #000049; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+ z-index: 50; | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color: #032865; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar-header { | ||||||||||||||||||||||||||||||||||||||||||||
+ width: 140px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
+ text-align: right; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar-menu { | ||||||||||||||||||||||||||||||||||||||||||||
+ text-align: right; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar-menu h3 { | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar-menu p { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 12pt; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 4px; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.sidebar-menu a { | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.content { | ||||||||||||||||||||||||||||||||||||||||||||
+ top: 0px; | ||||||||||||||||||||||||||||||||||||||||||||
+/* left: 0px;*/ | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 190px; | ||||||||||||||||||||||||||||||||||||||||||||
+/* padding-top: 0px*/ | ||||||||||||||||||||||||||||||||||||||||||||
+/* position: absolute;*/ | ||||||||||||||||||||||||||||||||||||||||||||
+/* margin-right: 32px;*/ | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color: #FFFFFF; | ||||||||||||||||||||||||||||||||||||||||||||
+ height: 100%; | ||||||||||||||||||||||||||||||||||||||||||||
+ height: auto !important; | ||||||||||||||||||||||||||||||||||||||||||||
+ width: auto; | ||||||||||||||||||||||||||||||||||||||||||||
+ display: block; | ||||||||||||||||||||||||||||||||||||||||||||
+/* display: inline-block;*/ | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.bold { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-weight: bold; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.italic { | ||||||||||||||||||||||||||||||||||||||||||||
+ font-style: italic; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.indent { | ||||||||||||||||||||||||||||||||||||||||||||
+ margin-left: 14px; | ||||||||||||||||||||||||||||||||||||||||||||
+ border-left: 1px solid #BBBBBB; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.code { | ||||||||||||||||||||||||||||||||||||||||||||
+ border-top: 2px solid #999999; | ||||||||||||||||||||||||||||||||||||||||||||
+ border-bottom: 2px solid #999999; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 4px 16px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 3px; | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color: #DDDDDD; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-family: Droid Sans Mono, Monospace, Fixed; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 10pt; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.tcp_button { | ||||||||||||||||||||||||||||||||||||||||||||
+ border: none; | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 0px 14px; | ||||||||||||||||||||||||||||||||||||||||||||
+ cursor: pointer; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.tcp_inner { | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 4px; | ||||||||||||||||||||||||||||||||||||||||||||
+ padding: 2px; | ||||||||||||||||||||||||||||||||||||||||||||
+ border: 1px solid #000000; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.tcp_inner_result { | ||||||||||||||||||||||||||||||||||||||||||||
+ margin: 6px; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.copyright { | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #BBBBBB; | ||||||||||||||||||||||||||||||||||||||||||||
+ text-align: left; | ||||||||||||||||||||||||||||||||||||||||||||
+ font-size: 9pt; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.copyright a { | ||||||||||||||||||||||||||||||||||||||||||||
+ color: #BBBBBB; | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+.recaptchatable .recaptcha_image_cell, #recaptcha_table { | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color: #4B9DE0 !important; //reCaptcha widget background color | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+#recaptcha_table { | ||||||||||||||||||||||||||||||||||||||||||||
+ border-color: #3874A4 !important; //reCaptcha widget border color | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+#recaptcha_response_field { | ||||||||||||||||||||||||||||||||||||||||||||
+ border-color: #000000 !important; //Text input field border color | ||||||||||||||||||||||||||||||||||||||||||||
+ background-color:#FFFFFF !important; //Text input field background color | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
Index: 404.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- 404.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ 404.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,22 +1,32 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('404'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
-write('Pages'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Biggles', '/~biggles/'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Freddie', '/~freddie/'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Muzer', '/~muzer/'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Sh4rk', '/~szabot/'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMenuItem('Tom', '/~tom/'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- 404 - Page not found | ||||||||||||||||||||||||||||||||||||||||||||
- The page you requested could not be found. | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+header('Status: 404 Not Found'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('404 - Page not found', '/'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+write('Pages'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('FredFace', '~freddie/'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Muzer', '~muzer/'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ 404 - Page not found | ||||||||||||||||||||||||||||||||||||||||||||
+ The page you requested could not be found. | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+Useful Links | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Tim32 Homepage', 'index.php'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMenuItem('Youfail.org', 'http://youfail.org'); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: login.php | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- login.php (revision 145) | ||||||||||||||||||||||||||||||||||||||||||||
+++ login.php (revision 522) | ||||||||||||||||||||||||||||||||||||||||||||
@@ -1,48 +1,55 @@ | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- Here you can login to Tim32 using your Tim32 account. | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-if (isset($_GET['error'])) | ||||||||||||||||||||||||||||||||||||||||||||
-{ | ||||||||||||||||||||||||||||||||||||||||||||
- $page->drawError($_GET['error'], false); | ||||||||||||||||||||||||||||||||||||||||||||
-} | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-
| ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
- | ||||||||||||||||||||||||||||||||||||||||||||
-?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+require '_taios.php'; | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Login'); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ Here you can login to Tim32 using your Tim32 account. | ||||||||||||||||||||||||||||||||||||||||||||
+ By using this website, you hereby accept cookies being stored on your computer. | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+if (isset($_GET['error'])) | ||||||||||||||||||||||||||||||||||||||||||||
+{ | ||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError($_GET['error'], false); | ||||||||||||||||||||||||||||||||||||||||||||
+} | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$redirurl = $_SERVER['HTTP_REFERER']; | ||||||||||||||||||||||||||||||||||||||||||||
+if($_GET['oldurl']) | ||||||||||||||||||||||||||||||||||||||||||||
+ $redirurl = $_GET['oldurl']; | ||||||||||||||||||||||||||||||||||||||||||||
+write(''); | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | ||||||||||||||||||||||||||||||||||||||||||||
+ | ||||||||||||||||||||||||||||||||||||||||||||
+?> | ||||||||||||||||||||||||||||||||||||||||||||
Index: data/favicon.png | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
Cannot display: file marked as a binary type. | ||||||||||||||||||||||||||||||||||||||||||||
svn:mime-type = application/octet-stream | ||||||||||||||||||||||||||||||||||||||||||||
Index: data/favicon.png | ||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | ||||||||||||||||||||||||||||||||||||||||||||
--- data/favicon.png (nonexistent) | ||||||||||||||||||||||||||||||||||||||||||||
+++ data/favicon.png (revision 522) |
/data/favicon.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-laugh.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-laugh.png |
=================================================================== |
--- data/smilies/face-laugh.png (nonexistent) |
+++ data/smilies/face-laugh.png (revision 522) |
/data/smilies/face-laugh.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-plain.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-plain.png |
=================================================================== |
--- data/smilies/face-plain.png (nonexistent) |
+++ data/smilies/face-plain.png (revision 522) |
/data/smilies/face-plain.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-sad.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-sad.png |
=================================================================== |
--- data/smilies/face-sad.png (nonexistent) |
+++ data/smilies/face-sad.png (revision 522) |
/data/smilies/face-sad.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-uncertain.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-uncertain.png |
=================================================================== |
--- data/smilies/face-uncertain.png (nonexistent) |
+++ data/smilies/face-uncertain.png (revision 522) |
/data/smilies/face-uncertain.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-wink.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-wink.png |
=================================================================== |
--- data/smilies/face-wink.png (nonexistent) |
+++ data/smilies/face-wink.png (revision 522) |
/data/smilies/face-wink.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-raspberry.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-raspberry.png |
=================================================================== |
--- data/smilies/face-raspberry.png (nonexistent) |
+++ data/smilies/face-raspberry.png (revision 522) |
/data/smilies/face-raspberry.png |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: data/smilies/face-surprise.png |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Index: data/smilies/face-surprise.png |
=================================================================== |
--- data/smilies/face-surprise.png (nonexistent) |
+++ data/smilies/face-surprise.png (revision 522) |
/data/smilies/face-surprise.png | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Property changes: | |||||||||||||||||||||||||||||||||||||||||||||||||
Added: svn:mime-type | |||||||||||||||||||||||||||||||||||||||||||||||||
## -0,0 +1 ## | |||||||||||||||||||||||||||||||||||||||||||||||||
+application/octet-stream | |||||||||||||||||||||||||||||||||||||||||||||||||
\ No newline at end of property | |||||||||||||||||||||||||||||||||||||||||||||||||
Index: register.php | |||||||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||||||||||||||||||||||||||
--- register.php (revision 145) | |||||||||||||||||||||||||||||||||||||||||||||||||
+++ register.php (revision 522) | |||||||||||||||||||||||||||||||||||||||||||||||||
@@ -1,56 +1,73 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-require '_taios.php'; | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-$page = new Taios_Page('Register'); | |||||||||||||||||||||||||||||||||||||||||||||||||
-$page->drawHeader(); | |||||||||||||||||||||||||||||||||||||||||||||||||
-$page->drawMiddle(); | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- Here you can create an account with Tim32. | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-if (isset($_GET['error'])) | |||||||||||||||||||||||||||||||||||||||||||||||||
-{ | |||||||||||||||||||||||||||||||||||||||||||||||||
- $page->drawError($_GET['error'], false); | |||||||||||||||||||||||||||||||||||||||||||||||||
-} | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-
| |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-$page->drawFooter(); | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+require '_taios.php'; | |||||||||||||||||||||||||||||||||||||||||||||||||
+require_once '_recaptchalib.php'; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+$page = new Taios_Page('Register'); | |||||||||||||||||||||||||||||||||||||||||||||||||
+$page->drawHeader(); | |||||||||||||||||||||||||||||||||||||||||||||||||
+$page->drawMiddle(); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ Here you can create an account with Tim32. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+if (isset($_GET['error'])) | |||||||||||||||||||||||||||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $page->drawError($_GET['error'], false); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+var RecaptchaOptions = { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ theme : 'clean' | |||||||||||||||||||||||||||||||||||||||||||||||||
+}; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+
| |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ By registering to Tim32, you agree to be reasonable in all your suggestion/accusations and advoid subjectivity. Suvbjective posts/comments are subject to removal by a Subject of the Tim32 Admins. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+$page->drawFooter(); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||||||||||||||||||||||||||
Index: _recaptchalib.php | |||||||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||||||||||||||||||||||||||
--- _recaptchalib.php (nonexistent) | |||||||||||||||||||||||||||||||||||||||||||||||||
+++ _recaptchalib.php (revision 522) | |||||||||||||||||||||||||||||||||||||||||||||||||
@@ -0,0 +1,277 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/* | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * This is a PHP library that handles calling reCAPTCHA. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * - Documentation and latest version | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * http://recaptcha.net/plugins/php/ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * - Get a reCAPTCHA API Key | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * https://www.google.com/recaptcha/admin/create | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * - Discussion group | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * http://groups.google.com/group/recaptcha | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * AUTHORS: | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Mike Crawford | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Ben Maurer | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Permission is hereby granted, free of charge, to any person obtaining a copy | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * of this software and associated documentation files (the "Software"), to deal | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * in the Software without restriction, including without limitation the rights | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * copies of the Software, and to permit persons to whom the Software is | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * furnished to do so, subject to the following conditions: | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * The above copyright notice and this permission notice shall be included in | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * all copies or substantial portions of the Software. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * THE SOFTWARE. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * The reCAPTCHA server URL's | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+define("RECAPTCHA_VERIFY_SERVER", "www.google.com"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Encodes the given data into a query string format | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param $data - array of string elements to be encoded | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @return string - encoded request | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_qsencode ($data) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $req = ""; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ foreach ( $data as $key => $value ) | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ // Cut the last '&' | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $req=substr($req,0,strlen($req)-1); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return $req; | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Submits an HTTP POST to a reCAPTCHA server | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $host | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $path | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param array $data | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param int port | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @return array response | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_http_post($host, $path, $data, $port = 80) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $req = _recaptcha_qsencode ($data); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request = "POST $path HTTP/1.0\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= "Host: $host\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= "Content-Length: " . strlen($req) . "\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= "User-Agent: reCAPTCHA/PHP\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= "\r\n"; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $http_request .= $req; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $response = ''; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ('Could not open socket'); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ fwrite($fs, $http_request); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ while ( !feof($fs) ) | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $response .= fgets($fs, 1160); // One TCP-IP packet | |||||||||||||||||||||||||||||||||||||||||||||||||
+ fclose($fs); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $response = explode("\r\n\r\n", $response, 2); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return $response; | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Gets the challenge HTML (javascript and non-javascript version). | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * This is called from the browser, and the resulting reCAPTCHA HTML widget | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * is embedded within the HTML form it was called from. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $pubkey A public key for reCAPTCHA | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $error The error given by reCAPTCHA (optional, default is null) | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false) | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @return string - The HTML to be embedded in the user's form. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false) | |||||||||||||||||||||||||||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($pubkey == null || $pubkey == '') { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($use_ssl) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $server = RECAPTCHA_API_SECURE_SERVER; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } else { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $server = RECAPTCHA_API_SERVER; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $errorpart = ""; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($error) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $errorpart = "&error=" . $error; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return ' | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ '; | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * A ReCaptchaResponse is returned from recaptcha_check_answer() | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+class ReCaptchaResponse { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ var $is_valid; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ var $error; | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Calls an HTTP POST function to verify if the user's guess was correct | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $privkey | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $remoteip | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $challenge | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $response | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param array $extra_params an array of extra variables to post to the server | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @return ReCaptchaResponse | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) | |||||||||||||||||||||||||||||||||||||||||||||||||
+{ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($privkey == null || $privkey == '') { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($remoteip == null || $remoteip == '') { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ("For security reasons, you must pass the remote ip to reCAPTCHA"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ //discard spam submissions | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response = new ReCaptchaResponse(); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response->is_valid = false; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response->error = 'incorrect-captcha-sol'; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return $recaptcha_response; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", | |||||||||||||||||||||||||||||||||||||||||||||||||
+ array ( | |||||||||||||||||||||||||||||||||||||||||||||||||
+ 'privatekey' => $privkey, | |||||||||||||||||||||||||||||||||||||||||||||||||
+ 'remoteip' => $remoteip, | |||||||||||||||||||||||||||||||||||||||||||||||||
+ 'challenge' => $challenge, | |||||||||||||||||||||||||||||||||||||||||||||||||
+ 'response' => $response | |||||||||||||||||||||||||||||||||||||||||||||||||
+ ) + $extra_params | |||||||||||||||||||||||||||||||||||||||||||||||||
+ ); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $answers = explode ("\n", $response [1]); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response = new ReCaptchaResponse(); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if (trim ($answers [0]) == 'true') { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response->is_valid = true; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ else { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response->is_valid = false; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $recaptcha_response->error = $answers [1]; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return $recaptcha_response; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * gets a URL where the user can sign up for reCAPTCHA. If your application | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * has a configuration page where you enter a key, you should provide a link | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * using this function. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $domain The domain where the page is hosted | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * @param string $appname The name of your application | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function recaptcha_get_signup_url ($domain = null, $appname = null) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_aes_pad($val) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $block_size = 16; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $numpad = $block_size - (strlen ($val) % $block_size); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return str_pad($val, strlen ($val) + $numpad, chr($numpad)); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/* Mailhide related code */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_aes_encrypt($val,$ky) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if (! function_exists ("mcrypt_encrypt")) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed."); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $mode=MCRYPT_MODE_CBC; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $enc=MCRYPT_RIJNDAEL_128; | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $val=_recaptcha_aes_pad($val); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_mailhide_urlbase64 ($x) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return strtr(base64_encode ($x), '+/', '-_'); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function recaptcha_mailhide_url($pubkey, $privkey, $email) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " . | |||||||||||||||||||||||||||||||||||||||||||||||||
+ "you can do so at http://www.google.com/recaptcha/mailhide/apikey"); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $ky = pack('H*', $privkey); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $cryptmail = _recaptcha_aes_encrypt ($email, $ky); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * gets the parts of the email to expose to the user. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * eg, given johndoe@example,com return ["john", "example.com"]. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * the email is then displayed as john...@example.com | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function _recaptcha_mailhide_email_parts ($email) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $arr = preg_split("/@/", $email ); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ if (strlen ($arr[0]) <= 4) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $arr[0] = substr ($arr[0], 0, 1); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } else if (strlen ($arr[0]) <= 6) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $arr[0] = substr ($arr[0], 0, 3); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } else { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $arr[0] = substr ($arr[0], 0, 4); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ } | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return $arr; | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+/** | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * Gets html to display an email address given a public an private key. | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * to get a key, go to: | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * | |||||||||||||||||||||||||||||||||||||||||||||||||
+ * http://www.google.com/recaptcha/mailhide/apikey | |||||||||||||||||||||||||||||||||||||||||||||||||
+ */ | |||||||||||||||||||||||||||||||||||||||||||||||||
+function recaptcha_mailhide_html($pubkey, $privkey, $email) { | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $emailparts = _recaptcha_mailhide_email_parts ($email); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ $url = recaptcha_mailhide_url ($pubkey, $privkey, $email); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ return htmlentities($emailparts[0]) . "...@" . htmlentities ($emailparts [1]); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+} | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+?> | |||||||||||||||||||||||||||||||||||||||||||||||||
Index: logout-do.php | |||||||||||||||||||||||||||||||||||||||||||||||||
=================================================================== | |||||||||||||||||||||||||||||||||||||||||||||||||
--- logout-do.php (revision 145) | |||||||||||||||||||||||||||||||||||||||||||||||||
+++ logout-do.php (revision 522) | |||||||||||||||||||||||||||||||||||||||||||||||||
@@ -1,6 +1,6 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-setcookie('Tim32_Login', '', -1, '/'); | |||||||||||||||||||||||||||||||||||||||||||||||||
-header('Location: index.php'); | |||||||||||||||||||||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||||||||||||||||||||
-?> | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+setcookie('Tim32_Login', '', -1, '/'); | |||||||||||||||||||||||||||||||||||||||||||||||||
+header('Location: index.php'); | |||||||||||||||||||||||||||||||||||||||||||||||||
+ | |||||||||||||||||||||||||||||||||||||||||||||||||
+?> |