Wednesday, June 6, 2012

Membuat Forum Sederhana (PHP+Mysql)


Okle hari ini saya buat tutorial sederhana bagaimana membuat forum Diskusi dengan menggunakan PHP dan MySql... Langsung ke TKP...
Pertama Siapkan secangkir kopi jangan lupa pake Ruti.. (optional.. ha..ha) lantas.. duduk manis ...
buat database dengan nama "forum" tanpa tanda petik... (=namanya sich bebas )

Lalu masukkan perintah SQL berikut...
Code:
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

Code:
$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);
}
?>
Ini file CSS-nya... Untuk memperbagus aja 
Simpan dengan nama "Style.css"

Code:

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)

Pertama index.php

Code:
include  "connect.php"; //untuk melakukan koneksi db

print "";

print  "Topik  Baru
";

print " 
TopikNamaBalasanBalasan Terakhir
$getthreads3[title]$getthreads3[author]$getthreads3[numreplies]$getthreads3[showtime] Pesan Terakhir Dari $getthreads3[lastposter]
"; ?>
Lalu message.php

Code:
include  "connect.php"; //koneksi db
$id=$_GET['id'];
print "";

print  "Kembali  Ke Forum-Topik Baru-Balas
";

print " 
AuthorPost
$gettopic3[author]Last replied to at $gettopic3[showtime]
"; $message=strip_tags($gettopic3['post']); $message=nl2br($message); print "$message
"; print "
$getreplies3[author]Last replied to at $getreplies3[showtime]
"; $message=strip_tags($getreplies3['post']); $message=nl2br($message); print "$message
"; print "
"; ?>
Lalu post.php

Code:
include "connect.php";

print  "";

print " 
Posting Sebuah Pesan
"; 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 Forum."; } } else { print " "; print "Nama: "; print " "; print "Subjek: "; print " "; print "Pesan: "; print " "; print ""; } print "
"; ?>
reply.php

Code:
include  "connect.php";

print "";

print " 
Balas
"; 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 Message."; } } else { $id=$_GET['id']; print " "; print ""; print "Nama: "; print " "; print "Pesan: "; print " "; print ""; } print "
"; ?>


Letakkan semuanya di dalam satu folder dan jalankan... ...disini gunung dsana gunung.. jangan bingung.. hikz



Fungsi String Pada PHP


  1. addslashes — Memberi garis miring pada tanda kutip
  2. chr — Menghasilkan karakter yang spesifik  berdasarkan kode ascii
  3. count_chars — Menghitung frekuensi munculnya karakter di suatu string
  4. explode — Membagi string menjadi array
  5. htmlspecialchars — Konversi karakter khusus ke HTML entities
  6. implode — Menggabungkan element array ke suatu string
  7. md5 — Menghasilkan enkripsi md5
  8. nl2br — Memasukan HTML <br> di setiap baris baru
  9. number_format — Format angka dengan dengan menggroupkan ribuan
  10. ord — Menghasilkan nilai ASCII suatu karakter
  11. parse_str — Mengubah string menjadi variabel
  12. print — Mencetak string, sama dengan echo
  13. str_pad — Menempatkan string ditempat yang panjangnya ditentukan
  14. str_repeat — Mengulang string
  15. str_replace — Mengganti string yang dicari dengan string pengganti
  16. str_shuffle — Mengacak string
  17. str_split — Mengubah string ke array
  18. str_word_count — Menghitung jumlah kata dalam string
  19. strip_tags — Menghilangkan tag HTML dan PHP
  20. stripslashes — Menghilangkan garis miring tanda kutip di string
  21. strlen — Mendapatkan panjang string
  22. strrev — Membalikkan string
  23. substr_replace — Mengganti teks pada bagian tertentu string
  24. substr — Menghasilkan bagian dari string

addslashes

Fungsi : Memberi garis miring atau slash jika ada tanda kutip pada string
Sintaks :

addslashes ( string $str )

Contoh :

<?php
$str = "Sekarang hari jum'at";
echo addslashes($str);
//Hasilnya : Sekarang hari jum\'at
?>

chr

Fungsi : Menghasilkan karakter yang spesifik berdasarkan kode ascii
Sintaks :

chr ( int $ascii )
Parameter :
$ascii = kode ascii
Contoh :

<?php
$kode = 81;
$str = chr($kode);
echo "karakter dengan kode ascii $kode adalah $str";
//Hasilnya : karakter dengan kode ascii 81 adalah Q
?>

count_chars

Fungsi : Menghitung frekuensi munculnya karakter di suatu string
Sintaks :

count_chars ( string $string [, int $mode= 0 ] )
Parameter :
$string = String yang ingin dihitung frekuensi karakter yang muncul
$mode = Opsional, Default = 0
  • 0 - Menghitung semua karakter dalam bentuk array, walaupun nggak ada di dalam string
  • 1 - Sama seperti 0, tapi hanya yang jumlah frekuensi besar dari 0, artinya hanya karakter yang ada di dalam string
  • 2 - Sama seperti 0, tapi hanya karakter yang jumlah frekuensinya sama dengan 0
Contoh :

<?php
$data = "Hello World";
foreach (count_chars($data, 1) as $i => $val) {
echo "Ada $val buah karakter \"" , chr($i) , "\" di dalam string.\n<br>";
}
?>
Hasilnya :

Ada 1 buah karakter " " di dalam string.
Ada 1 buah karakter "H" di dalam string.
Ada 1 buah karakter "d" di dalam string.
Ada 1 buah karakter "W" di dalam string. Ada 1 buah karakter "e" di dalam string.
Ada 1 buah karakter "r" di dalam string.
Ada 3 buah karakter "l" di dalam string.
Ada 2 buah karakter "o" di dalam string.

explode

Fungsi : Membagi string menjadi array berdasarkan string pembatas yang ditentukan
Sintaks :

explode ( string $delimiter , string $string [, int $limit ] )
Parameter :
$delimiter : string pembatas
$string : string yang akan dibagi
$limit : Batas maksimal elemen array yang dibuat
Contoh :

<?php
$str = 'one|two|three|four';
print_r(explode('|',$str));
// hanya 2 elemen array
print_r(explode('|', $str, 2));
?>
Hasilnya :

Array
(
[0] => one
[1] => two
e [3] => fou
[2] => thr er ) Array ( [0] => one
[1] => two|three|four
)

htmlspecialchars

Fungsi : Mengubah karakter < dan > menjadi &lt; dan &gt;. Ini sangat berguna untuk mencegah user yang menggunakan tag html ketika menginput data ke website kita, seperti melalui buku tamu, dan sebagainya.
Sintaks :

htmlspecialchars ( string $string )
Contoh :

<?php
$teks = "<b>hai apa kabar</b>";
echo htmlspecialchars($teks);
?>

implode

Fungsi : menggabungkan elemen array menjadi satu string
Sintaks :

implode ( [string $antara] , array $array )
Parameter :
$antara, string atau karakter antara elemen yang akan disatukan, bersifat opsional, bisa diisi atau tidak
$array, array yang akan disatukan.
Contoh :

<?php
$array = array('lastname', 'email', 'phone');
$teksbaru = implode("--",$array);
echo $teksbaru;
//hasilnya lastname--email--phone
?>

md5

Fungsi : untuk men-ekripsi string dengan teknik md5, bersifat satu arah, artinya tidak ada fungsi untuk mengembalikannya/dekripsi. Kecuali kalau pake kode hacking khusus
Sintaks :

md5 (string $string)
Contoh :

<?php
$password = "passwordku";
echo md5($password);
//Hasilnya : 88f200b77cccee4a6e95c383d33e0f22
?>

nl2br

Fungsi : mengubah baris baru (\n) menjadi <br>, berguna jika anda ingin ketika user input di teks area, kemudian menekan enter. Nah supaya ntar baris baru yang dibuat di teksarea bisa diampilkan harus diubah \n menjadi <br>
Sintaks :

nl2br ( string $string )

Contoh :

<?php
$teks = "Hai \n Apakabar";
$teks = nl2br($teks);
echo $teks;
?>

number_format

Format angka dengan dengan menggroupkan ribuan
Sintaks :

number_format ( float $number [, int $decimals ] )
atau
number_format ( float $number , int $decimals , string $dec_point , string $thousands_sep )
$number, adalah angka yang akan diformat
$decimals, adalah jumlah angka di belakang koma
$dec_point, adalah tanda desimal, apakah pake titik atau koma
$thousands_sep, adalah tanda pembagi ribuan, apakah koma atau titik atau lainnya
Contoh :

<?php
$number = 123564.56;
$format_number = number_format($number, 2, '.', ',');
echo $format_number;
//Hasil 123,564.56
?>

ord

Fungsi : Menghasilkan nilai ASCII suatu karakter, kebalikan dari fungsi chr()
Sintaks :

ord ( string $string )
Contoh :

<?php
$str = "x";
echo ord($str);
//Hasilnya 120
?>

parse_str

Fungsi : Mengubah string menjadi variabel
Sintaks :

parse_str ( string $str [, array &$arr ] )
Parameter :
$str, adalah string yang akan di ubah, anda juga bisa membuat string menjadi variabel seperti metode GET, contoh : file.php?nama=desrizal&alamat=tembagapura
$arr, adalah outputnya dalam bentuk array
Contoh :

<?php
$str = "nama=Desrizal&email=drz@desrizal.com";
parse_str($str);
echo $nama; // Hasilnya Desrizal
echo $email; // Hasilnya drz@desrizal.com
parse_str($str, $output);
echo $output['nama']; // Hasilnya Desrizal
echo $output['email'] // Hasilnya drz@desrizal.com
?>

print

Fungsi : sama seperti echo, menghasilkan/mencetak string
Sintaks :

print (String $str )
Contoh :

<?php
print("Hello World");
?>

str_pad

Fungsi : Menempatkan string ditempat yang panjangnya ditentukan
Sintaks

str_pad ( string $input , int $pad_length [, string $pad_string= " " [, int $pad_type= STR_PAD_RIGHT ]] )
Parameter :
$input, adalah string input
$pad_length, adalah panjang pad
$pad_string, adalah string mengisi kekosongan
$pad_type, adalah tipe pad, kanan (STR_PAD_RIGHT), kiri( STR_PAD_LEFT), atau tengah( STR_PAD_BOTH)
Contoh :

<?php
$input = "Desrizal";
echo str_pad($input, 15)."<br>"; // Hasil "Desrizal "
echo str_pad($input, 15, "-=", STR_PAD_LEFT)."<br>"; // Hasil "-=-=-=-Desrizal"
echo str_pad($input, 15, "_", STR_PAD_BOTH)."<br>"; // Hasil "___Desrizal____"
echo str_pad($input, 15 , "___")."<br>"; // Hasil "Desrizal_______"
?>

str_repeat

Fungsi : mengulang string
Sintaks :

str_repeat ( string $input , int $multiplier )
Parameter :
$input, adalah string yang akan diulang
$multiplier, berapa kali diulang
Contoh :

<?php
echo str_repeat("x", 10);
//hasilnya xxxxxxxxxx
?>

str_replace

Fungsi : Mengganti string yang dicari dengan string pengganti
Sintaks :

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
Parameter :
$search, adalah bagian string yang akan di ganti
$replace, adalah string pengganti
$subject, adalah string yang akan diproses
$count, jumlah bagian yang cocok dan diganti
Contoh :

<?php
$str = "Hello Apa kabar";
$str2 = str_replace("a","x",$str,$count);
echo $str2."<br>";
echo $count;
//Hasil : Hello Apx kxbxr
//hasil 3
?>

str_shuffle

Fungsi : mengacak string
Sintaks :

str_shuffle ( string $str )
Contoh :

<?php
echo str_shuffle("Desrizal");
//Hasilnya macam macam bisa : zDisalre
?>

str_split

Fungsi : Mengubah string ke array
Sintaks :

str_split ( string $string [, int $split_length= 1 ] )
$string, adalah string yang akan di ubah
$split_length adalah maksimum panjang potongan
Contoh :

<?php
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 2);
print_r($arr1);
print_r($arr2);
?>
Hasilnya :

Array
(
[0] => H
[1] => e
[3] => l
[2] => l [4] => o
[7] => r
[5] => [6] => F [8] => i
d ) Array (
[9] => e [10] => n [11] => [0] => He [1] => ll [2] => o
[3] => Fr [4] => ie [5] => nd
)

str_word_count

Fungsi : Menghitung jumlah kata dalam string
Sintaks :

str_word_count ( string $string [, int $format= 0 [, string $charlist ]] )
Parameter :
$string, adalah string yang akan dihitung
$format
  • 0 - jumlah kata yang ditemukan
  • 1 - Menghasilkan suatu array yang merupakan semua kata yang ditemukan dalam string
  • 2 - Menghasilkan array asosiatif
$charlist, karakter tambahan yang dianggap kata
Contoh :

<?php
$str = "Budi pergi ke pasar";
echo str_word_count($str);
//hasilnya 4
?>

strip_tags

Fungsi : Menghilangkan tag HTML dan PHP
Sintaks :

strip_tags ( string $str [, string $allowable_tags ] )
Parameter :
$str, string yang akan dihilangkan tag HTML nya
$allowable_tags, adalah tag yang tidak akan dihilangkan
Contoh :

<?php
$teks = "<b>Hallo apa kabar</b>";
echo strip_tags($teks);
?>

stripslashes

Fungsi : Menghilangkan garis miring tanda kutip di string
Sintaks :

stripslashes ( string $str )
Contoh :

<?php
$str = "Sekarang hari jum\'at";
echo stripslashes($str);
// Hasil: Sekarang hari jum'at
?>

strlen

Fungsi : Mendapatkan panjang string
Sintaks :

<?php
$str = 'abcdef';
echo strlen($str); // hasil 6
$str = ' ab cd ';
echo strlen($str); // hasil 7
?>

strrev

Fungsi : Membalikkan string
Sintaks :

strrev ( string $string )
Contoh :

<?php
echo strrev("Hello world!"); // Hasil "!dlrow olleH"
?>

substr_replace

Fungsi : Mengganti teks pada bagian tertentu string
Sintaks :

substr_replace ( mixed $string , string $replacement , int $start [, int $length ] )
Parameter :
$string, adalah string yang akan diproses/diganti
$replacement, adalah string pengganti dari substring yang ditentukan
$start, adalah sub string diawali dari karakter ke berapa
$length, adalah panjang sub string
Contoh :

<?php
$teks = "Desrizal";
echo substr_replace($teks, 'bob', 3, 2);
//hasilnya : Desbobzal
?>

substr

Fungsi : Menghasilkan bagian dari string
Sintaks :

substr ( string $string , int $start [, int $length ] )
Parameter :
$string, adalah string yang akan diambil bagiannya
$start, posisi awal karakter yang akan diambil
$length, adalah panjang dari subs string
Contoh :

<?php
echo substr("Desrizal", 3)."<br>"; //Hasilnya rizal
echo substr("Desrizal", 3, 2)."<br>"; //Hasilnya ri
echo substr("Desrizal", -3)."<br>"; //Hasilnya zal
echo substr("Desrizal", -3, 2)."<br>"; //Hasilnya za
?>