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…

Membuat Forum Sederhana (PHP+Mysql)

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)
)

Membuat Forum Sederhana (PHP+Mysql)

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  Grin .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>";
?>

Membuat Forum Sederhana (PHP+Mysql)

Letakkan semuanya di dalam satu folder dan jalankan… Semoga berguna dan selamat menikmati Smile

Jadinya kayak gini…

>Membuat Forum Sederhana (PHP+Mysql)

No related posts.

Posted in : PHP
Tags : , ,

19 Responses to “Membuat Forum Sederhana (PHP+Mysql)”

bells

March 26th, 2011 at 1:27 am

mas, kok aku coba, trus gue bs connect ya?
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in C:\xampp\htdocs\forum\connect.php on line 10
Gak Bisa Koneksi.
ada tulisan itu
mohon bantuannya Smile

March 27th, 2011 at 3:41 am

@bells: Sekarang kamu liat dulu host, username dan password pada phpmyadmin yang kamu punya… Terus samain sama data yang ada di connect.php

$db = mysql_connect(“localhost”, “root”, “cruzenaldo”)

localhost : nama host
root : username
cruzenaldo : password

CMIIW

kochay

April 6th, 2011 at 2:58 am

@Bells
edit aja jadi :
==============================
$db = mysql_connect(“localhost”, “root”, “”
==============================

btw…thanks bos…postingannya berguna! Wink

Cruz3N

April 6th, 2011 at 5:09 am

@Kochay : Makasih dah berkunjung Bro Grin jangan bosen2 yah Dance

tiram

April 20th, 2011 at 4:17 pm

bos, lw totor untuk cara buat login admin sm user ada g?
mohon bantuannya bos…. Grin

m4Y4t

April 23rd, 2011 at 3:10 am

weww….
Mantap ni kk tutor ny……… Yes Yes

izin pelajarin ni kk source ny..
salam kenal m4y4t.. Laugh Yes

November 11th, 2011 at 1:44 am

kk, minta lick download source code jadinya dong, Frown Sweat

zefanya

November 13th, 2011 at 5:41 pm

bro..mau tanya gimana sich cara membuat aplikasi chatting dengan php tanpa menggunakan ajax? tolong bantuannya..tnks.. Big Smile

November 17th, 2011 at 5:01 pm

Lah itu kan tinggal di copas aja Bro Grin

November 17th, 2011 at 5:03 pm

Tanpa ajax? Wah ane kurang tau Bro, kan biasanya klo chatting itu live jadi tanpa ajax kayaknya susah… Cobain jquery jg Bro Grin

D-ny

December 2nd, 2011 at 8:01 am

kk, untuk bagian cssnya yg mna y? soalnya aku dah coba tp gak ktemu script cssnya..

Thanks kk.. Yes Yes

septian

December 6th, 2011 at 2:31 am

wah??
maksud na dari id itu apa??
yg bagian postid = ‘id’

December 14th, 2011 at 2:41 am

mantab lah .. langsung praktek saya hehe
ada tugas dari kampus masalahnya.. makasih Grin

denis

December 21st, 2011 at 12:10 am

boz gi mna bs tau host, username dan password pada phpmyadmin di phpmyadmin kita?
mohon bantuannya gan Big Smile

ocy

February 17th, 2012 at 1:55 am

info nya sangat berguna.. Big Smile

yossi

March 6th, 2012 at 8:32 pm

mana file index.php nya??
koq aku coba ada error di connect line 18 gan?

diorama

March 15th, 2012 at 4:14 am

Om tampilnya kok cuma tulisan aja ya kayak gini:

Topik Baru
Topik Nama Balasan Balasan Terakhir

Smile

March 26th, 2012 at 5:27 pm

Itu file css nya ada dimana ya bos??
trus tampilannya kok cuma
Topik Baru
Topik Nama Balasan Balasan Terakhir Pesan Terakhir Dari

Tolong replay yah Smile

Maruli

April 19th, 2012 at 9:02 am

kk ajarin juga donk membuat personal message / PM soalnya lagi butuh banget ni….
thanks ea Grin

Leave a Response

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette