Creating a simple PHP forum

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • JasonBed
    replied
    Hey, great tutorial, thanks for the devpack idea. Question though.... Can you explain for others who I have trouble explaining to... exactly what RSA is in simple terms?

    Leave a comment:


  • arnage
    replied
    I use ternary here:

    PHP Code:

    $id 
    = isset($_GET['id']) ? $_GET['id'] : null; 
    This is equivalent to:

    PHP Code:

    if (isset($_GET['id'])) {

    $id = $_GET['id'];

    } else {

    $id = null;

    } 
    This way: $id = $_GET['id']; forget, it is simply wrong.

    Leave a comment:


  • marcuel
    replied
    i'm not very good at php, can anyone tell me what should i do to the code that will view my post.

    Leave a comment:


  • arnage
    replied
    Thats because of old type of coding, now those vars needs to be checked are isset().

    Leave a comment:


  • marcuel
    replied
    i will rebirth this post, i re-transform my database, the old database gives me error.

    Code:
    CREATE TABLE `forum_question` (
    `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`)
    )  ;
    
    CREATE TABLE `forum_answer` (
    `question_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`)
    ) ;
    but when i create new topic there's no topic in viewing it.

    Added after 9 minutes:

    error in add_answer.php same code in the old post

    Code:
    Notice: Undefined index: id in C:\xampp\htdocs\simple\add_answer.php on line 13
    
    Notice: Undefined index: a_name in C:\xampp\htdocs\simple\add_answer.php on line 29
    
    Notice: Undefined index: a_email in C:\xampp\htdocs\simple\add_answer.php on line 30
    
    Notice: Undefined index: a_answer in C:\xampp\htdocs\simple\add_answer.php on line 31
    Successful
    View your answer
    error in add_topic.php

    Code:
    Notice: Undefined index: topic in C:\xampp\htdocs\simple\add_topic.php on line 13
    
    Notice: Undefined index: detail in C:\xampp\htdocs\simple\add_topic.php on line 14
    
    Notice: Undefined index: name in C:\xampp\htdocs\simple\add_topic.php on line 15
    
    Notice: Undefined index: email in C:\xampp\htdocs\simple\add_topic.php on line 16
    Successful
    View your topic
    and when i create topic and go back in main_forum.php there's no topic but it has blank rows.

    see attachment my main_forum after i create topic.
    Attached Files
    Last edited by marcuel; 29.01.13, 13:37.

    Leave a comment:


  • kei_ki7
    replied
    marv, you need to add ?> at the end, because it is not close.
    its like html tag, you need to close it.

    Originally posted by venko View Post
    how to add user login, reg , logout system?
    You can based on lavalair script or also you can search it on google.

    Leave a comment:


  • venko
    replied
    how to add user login, reg , logout system?

    Leave a comment:


  • marv
    replied
    its ok got to sort it out learned a lot thanks

    Leave a comment:


  • marv
    replied
    ok i know this is a old post but never the less valuable to newbies like me
    im having a problem with view_topic.php on the above script its giving me

    ( ! ) Parse error: syntax error, unexpected $end in C:\wamp\www\test\forum_test\view_topic.php on line 135

    ive looked through the code and cant see to figure out whats wrong
    could anybody help pls

    thanks in advance

    Leave a comment:


  • bjayz
    replied
    bro im having error at the sql..

    Leave a comment:


  • riderz
    started a topic Creating a simple PHP forum

    Creating a simple PHP forum

    In this tutorial create 5 files
    1. create_topic.php
    2. add_topic.php
    3. main_forum.php
    4. view_topic.php
    5. add_answer.php

    Steps
    1. Create table name "forum_question" and "forum_answer" in database "test".
    2. Create file create_topic.php.
    3. Create file add_topic. php.
    4. Create file main_forum.php
    5. Create file view_topic.php
    6. Create file add_answer.php

    Set up database
    Code:
    Table forum_question
    CREATE TABLE `forum_question` (
    `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 ;
    
    Table forum_answer
    CREATE TABLE `forum_answer` (
    `question_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;
    Create file create_topic.php
    Code:
    <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <form id="form1" name="form1" method="post" action="add_topic.php">
    <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>
    Create file add_topic.php
    Code:
    <?php
    $host="localhost"; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name="test"; // Database name 
    $tbl_name="forum_question"; // Table name 
    
    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    
    // get data that sent from form 
    $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=main_forum.php>View your topic</a>";
    }
    else {
    echo "ERROR";
    }
    mysql_close();
    ?>
    Create file main_forum.php
    Code:
    <?php
    $host="localhost"; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name="test"; // Database name 
    $tbl_name="forum_question"; // Table name 
    
    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    
    $sql="SELECT * FROM $tbl_name ORDER BY id DESC";
    // OREDER BY id DESC is order result by descending 
    $result=mysql_query($sql);
    ?>
    <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>
    
    <?php
    while($rows=mysql_fetch_array($result)){ // Start looping table row 
    ?>
    <tr>
    <td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
    <td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td>
    <td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td>
    <td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td>
    <td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td>
    </tr>
    
    <?php
    // Exit looping and close connection 
    }
    mysql_close();
    ?>
    <tr>
    <td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td>
    </tr>
    </table>
    view_topic.php
    Code:
    <?php
    $host="localhost"; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name="test"; // Database name 
    $tbl_name="forum_question"; // Table name 
    
    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    
    // 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);
    ?>
    <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><? echo $rows['topic']; ?></strong></td>
    </tr>
    
    <tr>
    <td bgcolor="#F8F7F1"><? echo $rows['detail']; ?></td>
    </tr>
    
    <tr>
    <td bgcolor="#F8F7F1"><strong>By :</strong> <? echo $rows['name']; ?> <strong>Email : </strong><? echo $rows['email'];?></td>
    </tr>
    
    <tr>
    <td bgcolor="#F8F7F1"><strong>Date/time : </strong><? echo $rows['datetime']; ?></td>
    </tr>
    </table></td>
    </tr>
    </table>
    <BR>
    <?php
    $tbl_name2="forum_answer"; // Switch to table "forum_answer" 
    
    $sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id'";
    $result2=mysql_query($sql2);
    
    while($rows=mysql_fetch_array($result2)){
    ?>
    <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"><? echo $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"><? echo $rows['a_name']; ?></td>
    </tr>
    <tr>
    <td bgcolor="#F8F7F1"><strong>Email</strong></td>
    <td bgcolor="#F8F7F1">:</td>
    <td bgcolor="#F8F7F1"><? echo $rows['a_email']; ?></td>
    </tr>
    <tr>
    <td bgcolor="#F8F7F1"><strong>Answer</strong></td>
    <td bgcolor="#F8F7F1">:</td>
    <td bgcolor="#F8F7F1"><? echo $rows['a_answer']; ?></td>
    </tr>
    <tr>
    <td bgcolor="#F8F7F1"><strong>Date/Time</strong></td>
    <td bgcolor="#F8F7F1">:</td>
    <td bgcolor="#F8F7F1"><? echo $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);
    
    mysql_close();
    ?>
    <BR>
    <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
    <tr>
    <form name="form1" method="post" action="add_answer.php">
    <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="<? echo $id; ?>"></td>
    <td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td>
    </tr>
    </table>
    </td>
    </form>
    </tr>
    </table>
    add_answer.php
    Code:
    <?php
    $host="localhost"; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name="test"; // Database name 
    $tbl_name="forum_answer"; // Table name 
    
    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    
    // 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 question_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(question_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='view_topic.php?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";
    }
    
    mysql_close();
    ?>
Working...
X