this is a very simple forum script that got from http://www.chipmunk-scripts.com/board/index.php?forumID=43&ID=9268 and added a few things to it. i didn't add all the code from my site since the code is a little different from my files so there could be some errors.
create topics
replies to posters
creates a new page after every 10 topics (newer/older)
posts/creates topics based on who is logged in
create database table:
connect.php:
styling sheet for the forum:
forum.php: this is where you'll see all the topics
message.php: this the page your directed to when you click a topic.
newtopic.php:
reply.php: you'll see the link to this in the message.php
create topics
replies to posters
creates a new page after every 10 topics (newer/older)
posts/creates topics based on who is logged in
create database table:
- Code:
CREATE TABLE forumtutorial_posts (
postid bigint(20) NOT NULL auto_increment,
author varchar(255) NOT NULL default '',
title varchar(255) NOT NULL default '',
post mediumtext NOT NULL,
showtime varchar(255) NOT NULL default '',
realtime bigint(20) NOT NULL default '0',
lastposter varchar(255) NOT NULL default '',
numreplies bigint(20) NOT NULL default '0',
parentid bigint(20) NOT NULL default '0',
lastrepliedto bigint(20) NOT NULL default '0',
PRIMARY KEY (postid)
)
connect.php:
- Code:
<?php
$db = mysql_connect("localhost", "username", "password") or die("Could not connect.");
if(!$db)
die("no db");
if(!mysql_select_db("database_name",$db))
die("No database selected.");
if(!get_magic_quotes_gpc())
{
$_GET = array_map('mysql_real_escape_string', $_GET);
$_POST = array_map('mysql_real_escape_string', $_POST);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
else
{
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
$_GET = array_map('mysql_real_escape_string', $_GET);
$_POST = array_map('mysql_real_escape_string', $_POST);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
?>
styling sheet for the forum:
- Code:
<!---
body {
a:link, a:visited, a:active { text-decoration: none}
font-family:Verdana, Sans-serif;
color; #000000;
font-size: 12px
}
input,textarea, select,{
color : #000000;
font: normal 12px;
border-collapse: collapse; border: 1px solid #000000;
}
.maintable {border: 0px ; width: 100%; padding: 0px; background-color: #FFFFFF} /*main table for forum*/
.regrow {font-family: Verdana,Sans-serif; color: #000000; font-weight: bold; background-color: #FFFFFF;font-size: 12px;} /*registration row, mainly here for symetry*/
.headline {font-family: Verdana,Sans-serif;font-weight: bold;color: #FFFFFF;background-color: #003366;font-size: 11px;} /*headline row, the first row that says forum name, topics, posts and such*/
.forumrow {font-family: Verdana,Sans-serif; color: #000000;background-color: #F2F2F2;font-size: 12px;} /*color of the forum rows*/
.mainrow a:link, a:visited, a:active { text-decoration: none;}
.mainrow {font-family: Verdana,Sans-serif; color: #000000;background-color: #F2F2F2;font-size: 12px; a:link, a:visited, a:active { text-decoration: none}} /*color of the forum rows*/
.maintables{background-color: #FFFFFF; width: 95%; padding: 0px; border: 1px solid; cellspacing: no} /*main table for forum*/
--->
forum.php: this is where you'll see all the topics
- Code:
<?php
include "connect.php"; //mysql db connection here
include "include/session.php";
print "<A href='newtopic.php'>New Topic</a><br>";
"<link rel='stylesheet' href='style.css' type='text/css'>";
print "<A href='post.php'></a><br>";$blog_postnumber = 10;if(!isset($_GET['page'])) { $page = 1;}else { $page = (int)$_GET['page'];}$from = (($page * $blog_postnumber) - $blog_postnumber);
print "<table class='maintable'>";print "<tr class='headline'><td width=50%>Topic</td><td width=20%>Topic Starter</td><td>Replies</td><td>Last replied time</td></tr>";$getthreads="SELECT * from forumtutorial_posts where parentid='0' order by lastrepliedto desc LIMIT $from, $blog_postnumber";$getthreads2=mysql_query($getthreads) or die("Could not get threads");
while($getthreads3=mysql_fetch_array($getthreads2)){ $getthreads3[title]=strip_tags($getthreads3[title]); $getthreads3[author]=strip_tags($getthreads3[author]);
print "<tr class='mainrow'><td>
<A href='message.php?id=$getthreads3[postid]'>$getthreads3[title]</a></td><td>$getthreads3[author]</td><td>$getthreads3[numreplies]</td><td>$getthreads3[showtime]<br>Last post by <b>$getthreads3[lastposter]</b></td></tr>";}
print "</table>";$total_results = mysql_fetch_array(mysql_query("SELECT COUNT(*) as num FROM forumtutorial_posts where parentid='0'"));$total_pages = ceil($total_results['num'] / $blog_postnumber);if ($page > 1) { $prev = ($page - 1); echo "<a href=\"forum.php?page=$prev\"><< Newer</a> ";}for($i = 1; $i <= $total_pages; $i++) { if ($page == $i) { echo "$i "; } else { echo "<a href=\"forum.php?page=$i\">$i</a> "; }}if ($page < $total_pages) { $next = ($page + 1); echo "<a href=\"forum.php?page=$next\">Older >></a>";}
?>
message.php: this the page your directed to when you click a topic.
- Code:
<?php
include "connect.php"; //mysql db connection here
include "include/session.php";
$id=$_GET['id'];
print "<A href='forum.php'>Back to main forum</a>-<A href='newtopic.php'>New Topic</a>-<A href='reply.php?id=$id'>Reply<br>";
print "<table class='maintable'>";
print "<tr class='headline'><td width=20%>Author</td><td width=80%>Post</td></tr>";
$gettopic="SELECT * from forumtutorial_posts where postid='$id'";
$gettopic2=mysql_query($gettopic) or die("Could not get topic");
$gettopic3=mysql_fetch_array($gettopic2);
print "<tr class='mainrow'><td valign='top'>$gettopic3[author]</td><td vakign='top'>Last replied to at $gettopic3[showtime]<br><hr>";
$message=strip_tags($gettopic3['post']);
$message=nl2br($message);
print "$message<hr><br>";
print "</td></tr>";
$getreplies="Select * from forumtutorial_posts where parentid='$id' order by postid desc"; //getting replies
$getreplies2=mysql_query($getreplies) or die("Could not get replies");
while($getreplies3=mysql_fetch_array($getreplies2))
{
print "<tr class='mainrow'><td valign='top'>$getreplies3[author]</td><td vakign='top'>Last replied to at $getreplies3[showtime]<br><hr>";
$message=strip_tags($getreplies3['post']);
$message=nl2br($message);
print "$message<hr><br>";
print "</td></tr>";
}
print "</table>";
?>
newtopic.php:
- Code:
<?php
include "connect.php"; //mysql db connection here
include "include/session.php";
$id=$_GET['id'];
print "<A href='forum.php'>Back to main forum</a>-<A href='newtopic.php'>New Topic</a>-<A href='reply.php?id=$id'>Reply<br>";
print "<table class='maintable'>";
print "<tr class='headline'><td width=20%>Author</td><td width=80%>Post</td></tr>";
$gettopic="SELECT * from forumtutorial_posts where postid='$id'";
$gettopic2=mysql_query($gettopic) or die("Could not get topic");
$gettopic3=mysql_fetch_array($gettopic2);
print "<tr class='mainrow'><td valign='top'>$gettopic3[author]</td><td vakign='top'>Last replied to at $gettopic3[showtime]<br><hr>";
$message=strip_tags($gettopic3['post']);
$message=nl2br($message);
print "$message<hr><br>";
print "</td></tr>";
$getreplies="Select * from forumtutorial_posts where parentid='$id' order by postid desc"; //getting replies
$getreplies2=mysql_query($getreplies) or die("Could not get replies");
while($getreplies3=mysql_fetch_array($getreplies2))
{
print "<tr class='mainrow'><td valign='top'>$getreplies3[author]</td><td vakign='top'>Last replied to at $getreplies3[showtime]<br><hr>";
$message=strip_tags($getreplies3['post']);
$message=nl2br($message);
print "$message<hr><br>";
print "</td></tr>";
}
print "</table>";
?>
reply.php: you'll see the link to this in the message.php
- Code:
<?php
include "connect.php"; //connection string
include "include/session.php";
print "<table class='maintables'>";
print "<tr class='headline'><td>Reply</td></tr>";
print "<tr class='maintables'><td>";
if(isset($_POST['submit']))
{
$name=$_SESSION['username'];
$yourpost=$_POST['yourpost'];
$subject=$_POST['subject'];
$id=$_POST['id'];
if(strlen($name)<1)
{
print "You did not type in a name."; //no name entered
}
else if(strlen($yourpost)<1)
{
print "You did not type in a post."; //no post entered
}
else
{
$thedate=date("U"); //get unix timestamp
$displaytime=date("F j, Y, g:i a");
//we now strip HTML injections
$subject=strip_tags($subject);
$name=strip_tags($name);
$yourpost=strip_tags($yourpost);
$insertpost="INSERT INTO forumtutorial_posts(author,title,post,showtime,realtime,lastposter,parentid) values('$name','$subject','$yourpost','$displaytime','$thedate','$name','$id')";
mysql_query($insertpost) or die("Could not insert post"); //insert post
$updatepost="Update forumtutorial_posts set numreplies=numreplies+'1', lastposter='$name',showtime='$displaytime', lastrepliedto='$thedate' where postid='$id'";
mysql_query($updatepost) or die("Could not update post");
print "Message posted, go back to <A href='message.php?id=$id'>Message</a>.";
}
}
else
{
$id=$_GET['id'];
print "<form action='reply.php' method='post'>";
print "<input type='hidden' name='id' value='$id'>";
print "Your message:<br>";
print "<textarea name='yourpost' rows='5' cols='40'></textarea><br>";
print "<input type='submit' name='submit' value='submit'></form>";
}
print "</td></tr></table>";
?>