Membuat Forum Sederhana (PHP+Mysql)
By Cruz3N | on December 27th, 2010 | 19 Comments
Oke sekarang saya akan memberikan sedikit tutorial sederhana bagaimana membuat forum Diskusi dengan menggunakan PHP dan MySql… Gak terlalu expert tapi apa bila dikembangkan akan menjadi sangat menarik.
Semoga kita sama – sama bisa mengerti dan kita bisa mengembangkannya… Langsung aja yah…
Pertama buat database dengan nama “forum” tanpa tanda petik…

Lalu masukkan perintah SQL berikut…
CREATE TABLE forum_posting ( 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) )

Lalu buat connect.php
<?php
$db = mysql_connect("localhost", "root", "cruzenaldo") or die("Gak Bisa Koneksi.");
if(!$db)
die("Gak Ada Databasenya");
if(!mysql_select_db("forum",$db))
die("Gak Ada Databasenya.");
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);
}
?>
1
<p>Ini file CSS-nya... Untuk memperbagus aja
.Simpan dengan nama <strong>"Style.css"</strong></p>
1
<p>Nah disini kita memerlukan 4 buah file yang akan kita gunakan untuk menampilkan semua threads (index.php), File untuk melakukan posting (post.php), untuk menampilkan pesan (message.php) dan untuk melakukan reply (reply.php)</p>
<p>Pertama <strong>index.php</strong></p>
1
<?php
include "connect.php"; //untuk melakukan koneksi db
print "<link rel='stylesheet' href='style.css' type='text/css'>";
print "Topik Baru<br>";
print "<table class='maintable'>";
print "<tr class='headline'><td width=50%>Topik</td><td width=20%>Nama</td><td>Balasan</td><td>Balasan Terakhir</td></tr>";
$getthreads="SELECT * from forum_posting where parentid='0' order by lastrepliedto DESC";
$getthreads2=mysql_query($getthreads) or die("Tidak Dapat Memulai Thread");
while($getthreads3=mysql_fetch_array($getthreads2))
{
$getthreads3[title]=strip_tags($getthreads3[title]);
$getthreads3[author]=strip_tags($getthreads3[author]);
print "<tr class='mainrow'><td>$getthreads3[title]</td><td>$getthreads3[author]</td><td>$getthreads3[numreplies]</td><td>$getthreads3[showtime]<br>Pesan Terakhir Dari <b>$getthreads3[lastposter]</b></td></tr>";
}
print "</table>";
?>
Lalu message.php
<?php
include "connect.php"; //koneksi db
$id=$_GET['id'];
print "<link rel='stylesheet' href='style.css' type='text/css'>";
print "<A href='index.php'>Kembali Ke Forum</a>-Topik Baru-Balas<br>";
print "<table class='maintable'>";
print "<tr class='headline'><td width=20%>Author</td><td width=80%>Post</td></tr>";
$gettopic="SELECT * from forum_posting where postid='$id'";
$gettopic2=mysql_query($gettopic) or die("Tidak Dapat Memulai Topik");
$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 forum_posting where parentid='$id' order by postid desc";
$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>";
?>
post.php
<?php
include "connect.php";
print "<link rel='stylesheet' href='style.css' type='text/css'>";
print "<table class='maintables'>";
print "<tr class='headline'><td>Posting Sebuah Pesan</td></tr>";
print "<tr class='maintables'><td>";
if(isset($_POST['submit']))
{
$name=$_POST['name'];
$yourpost=$_POST['yourpost'];
$subject=$_POST['subject'];
if(strlen($name)<1)
{
print "Nama Masih Kosong.";
}
else if(strlen($yourpost)<1)
{
print "Postingan Masih Kosong.";
}
else if(strlen($subject)<1)
{
print "Subjek Masih Kosong.";
}
else
{
$thedate=date("U");
$displaytime=date("F j, Y, g:i a");
//Skrip untuk mencegah HTML injection
$subject=strip_tags($subject);
$name=strip_tags($name);
$yourpost=strip_tags($yourpost);
$insertpost="INSERT INTO forum_posting(author,title,post,showtime,realtime,lastposter) values('$name','$subject','$yourpost','$displaytime','$thedate','$name')";
mysql_query($insertpost) or die("Could not insert post"); //insert post
print "Berhasil Melakukan Postinga, Kembali Ke <A href='index.php'>Forum.";
}
}
else
{
print "<form action='post.php' method='post'>";
print "Nama:<br>";
print "<input type='text' name='name' size='20'><br>";
print "Subjek:<br>";
print "<input type='text' name='subject' size='20'><br>";
print "Pesan:<br>";
print "<textarea name='yourpost' rows='5' cols='40'></textarea><br>";
print "<input type='submit' name='submit' value='submit'></form>";
}
print "</td></tr></table>";
?>
reply.php
<?php
include "connect.php";
print "<link rel='stylesheet' href='style.css' type='text/css'>";
print "<table class='maintables'>";
print "<tr class='headline'><td>Balas</td></tr>";
print "<tr class='maintables'><td>";
if(isset($_POST['submit']))
{
$name=$_POST['name'];
$yourpost=$_POST['yourpost'];
$subject=$_POST['subject'];
$id=$_POST['id'];
if(strlen($name)<1)
{
print "Nama Masih Kosong.";
}
else if(strlen($yourpost)<1)
{
print "Pesan masih Kosong.";
}
else
{
$thedate=date("U");
$displaytime=date("F j, Y, g:i a");
$subject=strip_tags($subject);
$name=strip_tags($name);
$yourpost=strip_tags($yourpost);
$insertpost="INSERT INTO forum_posting(author,title,post,showtime,realtime,lastposter,parentid) values('$name','$subject','$yourpost','$displaytime','$thedate','$name','$id')";
mysql_query($insertpost) or die("Tidak Dapat Memasukkan Postingan");
$updatepost="Update forum_posting set numreplies=numreplies+'1', lastposter='$name',showtime='$displaytime', lastrepliedto='$thedate' where postid='$id'";
mysql_query($updatepost) or die("Tidak Dapat Mengupdate Postingan");
print "Pesan Telah Berhasil, Kembali Ke <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 "Nama:<br>";
print "<input type='text' name='name' size='20'><br>";
print "Pesan:<br>";
print "<textarea name='yourpost' rows='5' cols='40'></textarea><br>";
print "<input type='submit' name='submit' value='submit'></form>";
}
print "</td></tr></table>";
?>

Letakkan semuanya di dalam satu folder dan jalankan… Semoga berguna dan selamat menikmati ![]()
Jadinya kayak gini…
>
No related posts.





