PHP Forums

By F*U*R*B*Y* on Mar 15, 2008

i don't think i'm the creator of this, found on HDD, last modified date is over 3 years so shrugs rewrote it today to be in one file ;)

Installation:
filename.php?type=setup <--- setups the tables ;)
Once done setup, then visit filename.php <--- Voila done for you

<?php

    $host="localhost"; // Host name
    $username="root"; // Mysql username
    $password="pass"; // Mysql password
    $db_name="test"; // Database name
    $tbl_name="forum_topics"; // Table name -- LEAVE THIS AS IT IS

    mysql_connect($host, "$username", "$password")or die("cannot connect");
    mysql_select_db($db_name)or die("cannot select DB");
    if (isset($_GET['type']) && $_GET['type'] == "setup") {

        $sql = "CREATE TABLE `forum_topics` (
        `id` int(4) NOT NULL auto_increment,
        `topic` varchar(255) NOT NULL default '',
        `detail` longtext NOT NULL,
        `name` varchar(65) NOT NULL default '',
        `email` varchar(65) NOT NULL default '',
        `datetime` varchar(25) NOT NULL default '',
        `view` int(4) NOT NULL default '0',
        `reply` int(4) NOT NULL default '0',
        PRIMARY KEY (`id`)
        ) TYPE=MyISAM AUTO_INCREMENT=1 ;";
        $sql2 = "CREATE TABLE `forum_replies` (
        `thread_id` int(4) NOT NULL default '0',
        `a_id` int(4) NOT NULL default '0',
        `a_name` varchar(65) NOT NULL default '',
        `a_email` varchar(65) NOT NULL default '',
        `a_answer` longtext NOT NULL,
        `a_datetime` varchar(25) NOT NULL default '',
        KEY `a_id` (`a_id`)
        ) TYPE=MyISAM;";
        mysql_query($sql);
        mysql_query($sql2);
    }elseif (isset($_GET['type']) && $_GET['type'] == "create") {
        echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><form id=\"form1\" name=\"form1\" method=\"post\" action=\"".$PHP_SELF."?type=post\"><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td colspan=\"3\" bgcolor=\"#E6E6E6\"><strong>Create New Topic</strong> </td></tr><tr><td width=\"14%\"><strong>Topic</strong></td><td width=\"2%\">:</td><td width=\"84%\"><input name=\"topic\" type=\"text\" id=\"topic\" size=\"50\" /></td></tr><tr><td valign=\"top\"><strong>Detail</strong></td><td valign=\"top\">:</td><td><textarea name=\"detail\" cols=\"50\" rows=\"3\" id=\"detail\"></textarea></td></tr><tr><td><strong>Name</strong></td><td>:</td><td><input name=\"name\" type=\"text\" id=\"name\" size=\"50\" /></td></tr><tr><td><strong>Email</strong></td><td>:</td><td><input name=\"email\" type=\"text\" id=\"email\" size=\"50\" /></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td><input type=\"submit\" name=\"Submit\" value=\"Submit\" /> <input type=\"reset\" name=\"Submit2\" value=\"Reset\" /></td></tr></table></td></form></tr></table>";
    }elseif (isset($_GET['type']) && $_GET['type'] == "post") {
        $topic=$_POST['topic'];
        $detail=$_POST['detail'];
        $name=$_POST['name'];
        $email=$_POST['email'];
        $datetime=date("d/m/y h:i:s"); //create date time
        $sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')";
        $result=mysql_query($sql);
        if($result){
            echo "Successful<BR>";
            echo "<a href=\"".$PHP_SELF."\">View your topic</a>";
        }else {
            echo "Error Posting.";
        }
    }elseif (!isset($_GET['type'])) {
        $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
        // OREDER BY id DESC is order result by descending
        $result=mysql_query($sql);
        echo "<table width=\"90%\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><td width=\"6%\" align=\"center\" bgcolor=\"#E6E6E6\"><strong>#</strong></td><td width=\"53%\" align=\"center\" bgcolor=\"#E6E6E6\"><strong>Topic</strong></td><td width=\"15%\" align=\"center\" bgcolor=\"#E6E6E6\"><strong>Views</strong></td><td width=\"13%\" align=\"center\" bgcolor=\"#E6E6E6\"><strong>Replies</strong></td><td width=\"13%\" align=\"center\" bgcolor=\"#E6E6E6\"><strong>Date/Time</strong></td></tr>";
        while($rows=mysql_fetch_array($result)){ // Start looping table row 
            echo "<tr><td bgcolor=\"#FFFFFF\">".$rows['id']."</td><td bgcolor=\"#FFFFFF\"><a href=\"".$PHP_SELF."?type=view&id=".$rows['id']."\">".$rows['topic']."</a><BR></td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['view']."</td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['reply']."</td><td align=\"center\" bgcolor=\"#FFFFFF\">".$rows['datetime']."</td></tr>";
        }
        echo "<tr><td colspan=\"5\" align=\"right\" bgcolor=\"#E6E6E6\"><a href=\"".$PHP_SELF."?type=create\"><strong>Create New Topic</strong> </a></td></tr></table>";
    }elseif (isset($_GET['type']) && $_GET['type'] == 'view') {
        // get value of id that sent from address bar
        $id=$_GET['id'];
        $sql="SELECT * FROM $tbl_name WHERE id='$id'";
        $result=mysql_query($sql);
        $rows=mysql_fetch_array($result);

        echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bordercolor=\"1\" bgcolor=\"#FFFFFF\"><tr><td bgcolor=\"#F8F7F1\"><strong>".$rows['topic']."></strong></td></tr><tr><td bgcolor=\"#F8F7F1\">".$rows['detail']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>By :</strong> ".$rows['name']." <strong>Email : </strong>".$rows['email']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Date/time : </strong>".$rows['datetime']."</td></tr></table></td></tr></table><BR>";
        $tbl_name2="forum_replies"; // Switch to replies table
        $sql2="SELECT * FROM $tbl_name2 WHERE thread_id='$id'";
        $result2=mysql_query($sql2);
        while($rows=mysql_fetch_array($result2)){
            echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td bgcolor=\"#F8F7F1\"><strong>ID</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_id']."</td></tr><tr><td width=\"18%\" bgcolor=\"#F8F7F1\"><strong>Name</strong></td><td width=\"5%\" bgcolor=\"#F8F7F1\">:</td><td width=\"77%\" bgcolor=\"#F8F7F1\">".$rows['a_name']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Email</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_email']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Answer</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_answer']."</td></tr><tr><td bgcolor=\"#F8F7F1\"><strong>Date/Time</strong></td><td bgcolor=\"#F8F7F1\">:</td><td bgcolor=\"#F8F7F1\">".$rows['a_datetime']."</td></tr></table></td></tr></table><br>";
        }
        $sql3="SELECT view FROM $tbl_name WHERE id='$id'";
        $result3=mysql_query($sql3);
        $rows=mysql_fetch_array($result3);
        $view=$rows['view'];
        // if have no counter value set counter = 1
        if(empty($view)){
            $view=1;
            $sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'";
            $result4=mysql_query($sql4);
        }
        // count more value
        $addview=$view+1;
        $sql5="update $tbl_name set view='$addview' WHERE id='$id'";
        $result5=mysql_query($sql5);

        echo "<BR><table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\"><tr><form name=\"form1\" method=\"post\" action=\"".$PHP_SELF."?type=reply\"><td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td width=\"18%\"><strong>Name</strong></td><td width=\"3%\">:</td><td width=\"79%\"><input name=\"a_name\" type=\"text\" id=\"a_name\" size=\"45\"></td></tr><tr><td><strong>Email</strong></td><td>:</td><td><input name=\"a_email\" type=\"text\" id=\"a_email\" size=\"45\"></td></tr><tr><td valign=\"top\"><strong>Answer</strong></td><td valign=\"top\">:</td><td><textarea name=\"a_answer\" cols=\"45\" rows=\"3\" id=\"a_answer\"></textarea></td></tr><tr><td>&nbsp;</td><td><input name=\"id\" type=\"hidden\" value=\"".$id."\"></td><td><input type=\"submit\" name=\"Submit\" value=\"Submit\"> <input type=\"reset\" name=\"Submit2\" value=\"Reset\"></td></tr></table></td></form></tr></table>";
    }elseif (isset($_GET['type']) && $_GET['type'] == "reply") {
        // Get value of id that sent from hidden field
        $id=$_POST['id'];
        // Find highest answer number.
        $sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE thread_id='$id'";
        $result=mysql_query($sql);
        $rows=mysql_fetch_array($result);
        // add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
        if ($rows) {
            $Max_id = $rows['Maxa_id']+1;
        }else {
            $Max_id = 1;
        }
        // get values that sent from form
        $a_name=$_POST['a_name'];
        $a_email=$_POST['a_email'];
        $a_answer=$_POST['a_answer'];
        $datetime=date("d/m/y H:i:s"); // create date and time
        // Insert answer
        $sql2="INSERT INTO $tbl_name(thread_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')";
        $result2=mysql_query($sql2);
        if($result2){
            echo "Successful<BR>";
            echo "<a href='".$PHP_SELF."?type=view&id=".$id."'>View your answer</a>";
            // If added new answer, add value +1 in reply column
            $tbl_name2="forum_question";
            $sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'";
            $result3=mysql_query($sql3);
        }
        else {
            echo "ERROR";
        }
    }
?>

Comments

Sign in to comment.
nikadorji   -  Mar 24, 2012

hello Anyone,
can someone help me how to put the text editor in my content management instead of the textarea which i am using just now ...

 Respond  
hitandrun83   -  Dec 05, 2009

furby i'd like to get the codes.

 Respond  
LordHawk   -  Jan 11, 2009

Im sorry but no i dont run Msn, you can always Nopaste the code for 24 hours.

 Respond  
F*U*R*B*Y*   -  Jan 10, 2009

LordHawk, i have a better set of Forums that i can give to you

Do you have msn?

 Respond  
LordHawk   -  Jan 10, 2009

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/lordhawk/public_html/hardforums.php on line 96
Unknown column 'forum_replies.a_id' in 'field list'ERROR

 Respond  
F*U*R*B*Y*   -  Jan 09, 2009

are you able to change line 96 to

$rows=mysql_fetch_array($result) or die(mysql_error());

then post the error please.. it works for me, so i don't know sorry... but will try and help out =)

 Respond  
LordHawk   -  Jan 07, 2009

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/lordhawk/public_html/hardforums.php on line 96
ERROR

$rows=mysql_fetch_array($result); <-- Line 96

which is making me think there is an issue somewhere in the $sql

 Respond  
F*U*R*B*Y*   -  Jun 13, 2008

uh, line 119 is

else {

so uh?

 Respond  
wizkidweb16   -  Jun 13, 2008

Found an error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /forums/index.php on line 119
ERROR
 Respond  
F*U*R*B*Y*   -  Apr 21, 2008

The New Version, Currently under Construction still: http://au01.snm.co.nz/Distribution%20Forums/

 Respond  
F*U*R*B*Y*   -  Mar 17, 2008

its a PHP Web Forums, this one doesn\'t have multiple category\'s, But my one i\'ve made and still making has multiple category\'s

 Respond  
guest598594   -  Mar 16, 2008

What does this do?

 Respond  
F*U*R*B*Y*   -  Mar 15, 2008

LordHawk, fixed that problem :)

UV, which edit.php file? :S

 Respond  
Undefined_Variable   -  Mar 15, 2008

Sup Furby, I was wondering if you were going to update the edit.php file to where it actually works and has no errors :D

 Respond  
LordHawk   -  Mar 15, 2008

from what i can tell unless im doing something wrong you can not reply. It comes back with the Error everytime

 Respond  
F*U*R*B*Y*   -  Mar 15, 2008

ya sorry for double post and stuff, will be posting my own forums in a few days, just got to rewrite a part of it then it\'ll work :) much better then this one, but this one inspired me to make my own ;)

 Respond  
F*U*R*B*Y*   -  Mar 15, 2008

could be updated hugely, as in, login system, bbcodes, smilies

but i only rewrote it to be in one file and to have the setup tables, besides that, i can not claim the credit as i do not know who is the original creator, could be myself, could be someone else, was over 3 years since last editted so yeah

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.