Tulisan
 
  Aktual dan Umum (10)
  Animasi Flash (1)
  Artikel (19)
  Browsing (5)
  Cerita dan Kisah (5)
  Cerita Lucu (3)
  Curhat (9)
  Data dan Internet Tutorial (2)
  HTML Tutorial (3)
  Islam dan Seputarnya (8)
  Java Programming (1)
  Java Script dan CSS (1)
  Linux dan Seputarnya (5)
  Networking dan Hardware (6)
  PHP Programming (14)
  Sudut Pandang (20)
  Teknologi Informasi (23)
  Tentang Database (2)
  Web Desain and Development (5)
  Windows dan Seputarnya (6)
 
Ngobrol Bareng Adi Sumaryadi langsung aja klik salah satu Messanger kesukaan anda:
Yahoo Facebook
Facebook Adi Sumaryadi

depanlastcomment
asyima puteri asyima puteri dalam Cintaku Kandas Juga Ditengah Jalan
Del Prio Del Prio dalam Tips Optimasi dan Mengontrol MySQL
ligan ligan dalam Pilihan Hosting Control Panel Gratis dan Opensource
sri sri dalam Mengedit Film Menggunakan Movie Maker
zacky zacky dalam Orang Jawa Cenderung Lebih Pede Ketimbang Orang Sunda
Judul
Membuat Bukutamu dengan PHP dan MySQL (Pra Advance)

Oleh : Adi Sumaryadi

Walaupun banyak orang yang bilang bahwa jika sebuah website mempunyai bukutamu itu membutuhkan pengakuan dari pengunjung, tapi saya kali ini sambil menunggu nasi mateng akan coba berbagi, mudah-mudahan bermanfaat bagi pembaca semua. Kali ini akan membahas bagaimana membuat bukutamu, namun kita akan buat bukutamu sebagai modul yang siap diintegrasikan dengan modul-modul lain yang kita buat, bertahap, kita pertama buat modul bukutamu terlebih dahulu, silahkan baca selengkapnya saja.

Ok, kita mulai, saya anggap teman-teman sudah berhasil menginstall Webserver menggunakan Apache atau yang lainnya. ada beberapa langkah yang harus dilakukan. Oh iya, saya kali ini membuat dalam PHP 4.4 dan MySQL 5.

Membuat Database Bukutamu

Tentunya sebelum kita membuat code PHPnya, kita akan membuat databasenya terlebih dahulu, silahkan buka database consolenya atau kalau sulit kita akan langsung gunakan PHPMyAdmin yang biasanya diakses melalui browser http://localhost/phpmyadmin.

Setelah kita berada dalam konsole MySQL, baik, kita anggap ada dalam Windows.

D:/apache/mysql/bin/

MySQL > create database latihan1;

//selesai membuat database bukutamu selajutnya kita membuat table bukutamu

CREATE TABLE IF NOT EXISTS `bukutamu` (
  `isi_id` int(11) NOT NULL auto_increment,
  `pesan` text collate latin1_general_ci,
  `tanggal` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `nama` text collate latin1_general_ci NOT NULL,
  `homepage` varchar(100) collate latin1_general_ci NOT NULL,
  `ip` varchar(200) collate latin1_general_ci NOT NULL default '',
  `occupation` varchar(250) collate latin1_general_ci NOT NULL default '',
  `lokasi` varchar(200) collate latin1_general_ci NOT NULL default '',
  `email` varchar(50) collate latin1_general_ci NOT NULL default '',
  PRIMARY KEY  (`isi_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=552 ;

selesai semua pembuatan database bukutamu. Selanjutnya adalah membuat koding PHPnya.

Membuat Struktur Folder Bukutamu

Supaya dikemudian hari kita mudah mengintegrasikan dengan modul yang lain maka kita akan menampung semua file yang berhubungan dengan bukutamu dalam sebuah folder, tidak harus begini memang, cuma untuk memudahkan. Nantinya akan ada beberapa file yang harus ada yaitu.

1. form.php
2. simpan.php
3. data_bukutamu.php
4. modul.php

Selain itu juga kita akan membuat folder untuk meyimpan file-file konfigurasi yang kita butuhkan, anggap saja kita akan membuat folder bernama configurasi yang berisi file database.conf.php


Memulai Membuat Kode PHP.

Pertama yang harus kita buat adalah yang ada dalam folder configurasi yaitu database.conf.php yang isinya adalah sebagai berikut :

<?php
//Konfigurasi Database
 
$hostname = "localhost";
$username = "root";
$password = "";
$database = "latihan1";

// Melakukan koneksi database

$koneksi = mysql_connect ($hostname,$username,$password);
if (!$koneksi) die ("Tidak tersambung kedalam server database ");
mysql_select_db($database);

$badword ="fuck,anjing,kehed"; //untuk menyensor kata kata jelek dibukutamu

$badip = "202.123.123.123,66.77.88.99"; // untuk memblok IP berbahaya

$judul_per_hlm = 10; // Banyaknya data bukutamu yang ditampikan dalam 1 hlm
?>

Simpan file tadi dalam folder configurasi, oh iya semuanya harus dalam folder misalkan di C:/apache/htdocs/latihan1 untuk memudahkan saja.

Kedua kita akan membuat form untuk butamunya itu sendiri, kalau bingung ketik saja semua yang ada, nanti dipelajari menyusul. isi dari form.php adalah sebagai berikut :

<SCRIPT language=javascript>
  function simpan()
  {
   if ((document.register.nama.value == "")||(document.register.nama.value.length < 3))
    {
     alert("Nama harus diisi")
     return false
    }
      else if (document.register.email.value == "" || document.register.email.value.indexOf ('@',0) == -1 ||
              document.register.email.value.indexOf ('.',0) == -1)
    {
     alert("email tidak valid")
     return false    
    }

       else if (document.register.occupation.value == "")
    {
     alert("Pekerjaan anda masih kosong")
     return false    
    }
    else if (document.register.lokasi.value == "")
    {
     alert("Alamat anda harus diisi")
     return false    
    }
    else if (document.register.pesan.value == "")
    {
     alert("Apakah anda lupa mengisi pesan ?")
     return false    
    }
}    
 </script>

<form  method="post" onsubmit="return simpan()" name="register">
<input type="hidden" value="simpan" name="aksi">
  <table width="63%" border="0" align="center" cellpadding="4" cellspacing="4" bordercolor="#FFFFFF" >
    <tr>
      <td bgcolor="">
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="1" class="hitamsedang">
          <tr>
            <td width="50%"><? echo $bahasa_nama; ?></td>
            <td width="50%"><? echo $bahasa_email; ?></td>
          </tr>
          <tr>
            <td> <input type="text" name="nama" class="textfield1"> </td>
            <td> <input name="email" type="text" class="textfield1" id="email"> </td>
          </tr>
          <tr>
            <td width="50%"><? echo $bahasa_alamat; ?></td>
            <td width="50%"><? echo $bahasa_pekerjaan; ?></td>
          </tr>
          <tr>
            <td> <input name="lokasi" type="text" class="textfield1" id="lokasi"> </td>
            <td> <input type="text" name="occupation" class="textfield1"> </td>
          </tr>
          <tr>
            <td colspan="2"><? echo $bahasa_isipesan; ?></td>
          </tr>
          <tr>
            <td colspan="2"> <textarea name="pesan" class="textarea1"></textarea> <input type="hidden" name="aksi" value="simpan">
            </td>
          </tr>
          <tr>
            <td colspan="2" align="right"><input class="button" type="submit" name="Submit" value="<? echo $bahasa_kirim; ?>"> 
            &nbsp;&nbsp;&nbsp;</td>
          </tr>
        </table></td>
    </tr>
  </table>
</form>

File ini sudah mengandung Javascript untuk validasi kemungkinan mengisi bukutamu kosong.

Selanjutnya kita kan membuat file simpan.php yang isinya sebagai berikut :

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="hitamsedang" align="center">
  <tr>
    <td valign="top" align="center" class=hitamsedang>
      <?
       if (isset($_POST['aksi']) && $_POST['aksi'] == 'simpan')
    {   
        $pesan= $_POST[pesan];
        $occupation =$_POST[occupation];
        $nama = $_POST[nama];
        $email = $_POST[email];
        $lokasi = $_POST[lokasi];
        $pesan = htmlspecialchars("$pesan",ENT_QUOTES);
        $lokasi = htmlspecialchars("$lokasi",ENT_QUOTES);
        $nama = htmlspecialchars("$nama",ENT_QUOTES);
        $occupation = htmlspecialchars("$occupation",ENT_QUOTES);
        $ip = gethostbyname($_SERVER['REMOTE_ADDR']);

      $error_back = "<p align=center ><b><a href="javascript:history.back();" class=judul> [ Back ]</a></b></p>";
     if (empty($nama))
     {
         $salah .= ("Nama harus diisi dong<br> ");
         $benar = 2;
     }   
      if (empty($email))
     {
         $salah .= ("Email tidak valid<br> ");
         $benar = 2;
     }
     if (empty($lokasi))
     {
         $salah .= ("Alamat harus diisi<br> ");
         $benar = 2;
     }
      if (empty($pesan) )
     {
         $salah .= ("Pesan harus diisi<br> ");
         $benar = 2;
     }
     
     //Pacth untuk menghapus pesan terlalu panjang
     $pesanpanjang = explode(" ",$pesan);
     $totalkatapanjang = count($pesanpanjang);
     for($i=0;$i < $totalkatapanjang;$i++){
         $jumlahkarakter = strlen($pesanpanjang[$i]);
         if($jumlahkarakter > 30 )
         $pesan = str_replace("$pesanpanjang[$i]", " **sensored** ", "$pesan");
      }
     //Patch Selesai
     //menyensor kata2 jelek
     $kata = explode(",",$badword);
     $totalkata = count($kata);
   
     for($i=0;$i < $totalkata;$i++){
         $pesan = str_replace("$kata[$i]", " **sensored** ", "$pesan");
      }
     

   // melarang IP jelek ngisi bukutamu
    $badip = explode(",",$badip);
     $totalip = count($badip);
   
     for($i=0;$i < $totalip;$i++){
         if ($ip=="$badip[$i]")
            {               
                $salah .= ("Anda tidak boleh ngisi bukutamu<br> ");
                 $benar = 2;
            }
     }

     if ($benar == 2)
     {
         print ("<p align=center class=hitamsedang>Ada kesalahan saat ngisi bukutamu
                <br><br>$salah <br> $error_back
                </p> ");
     }     
    else
     {     
     
   

   
         /*---------cek udah ada belom--------*/

        $sql = "select count(*) as jml from bukutamu where nama='$nama' and occupation='$occupation' and ip='$ip' and pesan='$pesan' and email='$email' and lokasi='$lokasi' ";
       
        $hsl = mysql_db_query($database, $sql);
        $tot = mysql_result($hsl, 0, jml);
       
        if ($tot=="0")
        {

               $query=("insert into bukutamu (nama,occupation,pesan,ip,lokasi,email)
               values ('$nama','$occupation','$pesan','$ip','$lokasi','$email')");
               $hasil = mysql_db_query($database,$query);
               if($hasil)
               {
                   echo "<br><br><br><br>Bukutamu berhasil disimpan.<br>
                <b><a href="index.php" class=judul>[ Back to Home ]</a></b>";           
            }else
                echo "<br><br><br><br>Gagal disimpan.<br> <b><a href="javascript:history.back();" class=arsip>[ Back ]</a></b>. ";
         }
         else
        echo "<br><br><br><br>gagal disimpan, please recompose.<br> <b><a href="javascript:history.back();" class=judul>[ Back ]</a></b>. ";
// Selesai
    }
    }
?>
    </td>
  </tr>
</table>

Baik selanjutnya kita akan membuat file untuk menampilkan data yaitu data_bukutamu.php yang isinya sebagai berikut :

<?php
$hlm=$_GET[hlm];
$nama_tabel="bukutamu";
$judul_per_hlm = 10;
        $sql = "select count(*) as jml from $nama_tabel";
        $hsl = mysql_db_query($database, $sql);
        $tot = mysql_result($hsl, 0, jml);
        $hlm_tot = ceil($tot / $judul_per_hlm);       
        if (empty($hlm)){
            $hlm = 1;
        }
        if ($hlm > $hlm_tot){
            $hlm = $hlm_tot;
        }
        $ord = ($hlm - 1) * $judul_per_hlm;
        if($ord < 1) $ord=0;
        $sql = "select * from $nama_tabel order by isi_id desc limit $ord, $judul_per_hlm";
        $hsl = mysql_db_query($database, $sql);
        $i = 1;
        while ($row = mysql_fetch_object($hsl))
        {
            $nama = $row->nama;
            $occupation = $row->occupation;
            $pesan = $row->pesan;
            $pesan = nl2br($pesan);
            $isi_id = $row->isi_id;
            $lokasi = $row->lokasi;
            $tanggal = $row->tanggal;
            echo"<span class=hitamsedang>$tanggal";

        echo"</span>";
            echo"<table cellpading=0 cellspacing=0 width=100% border=0 class=hitam >";
            echo"<tr><td class=hitamsedang align=left><b>$nama,$occupation
di $lokasi</b><br><br>$pesan</td></tr>";
            echo"</table><hr>";
            $i %= 2;
            $i++;
            $ord++;
        }

//Paging untuk mengatur halaman
        echo"<table cellpading=0 cellspacing=0 width=100% border=0 class=putihsedang><tr><td align=right>";
        if ($hlm > 1){
            $prev = $hlm - 1;
            print("<a href=$php_self?hlm=$prev class=menu><b>Previous Page|</b></a> ");
        }
        for ($i=1; $i <= $hlm_tot; $i++){
            if ($i==$hlm){
                //print(" <b class=putihsedang>$i</b> ");
            }else{
                //print(" <a href=$php_self?hlm=$i class=isi>$i</a> ");
            }
        }
        if ($hlm < $hlm_tot){
            $next = $hlm + 1;
            print(" <a href=$php_self?hlm=$next class=menu><b>|Next Page</b></a>");
        }
        echo"</td></tr></table>";
        mysql_free_result($hsl);

include('form.php');
?>


Selesai sudah membuat file-file bukutamu yang diperlukan, sekarang kita akan membuat navigasi untuk file-file tadi dan kita simpan di dalam file modul.php  yang isinya adalah sebagai berikut :

 <table width="100%"  border="0" cellspacing="5" cellpadding="5">
          <tr>
            <td><?
    // mengatur aksi-kasi yang timbul

    if($_POST[aksi]=="simpan")
    {
    include('simpan.php');
    }
    else
    {
    include('data_bukutamu.php');
    } ?></td>
          </tr>
        </table>

Sudah semuanya, sekarang tinggal menampilkan di halaman depan website kita, oh iya saya ulang kembali struktur folder yang harusnya ada :

Htdocs/latihan1/
     - bukutamu
         - form.php
         - simpan.php
         - data_bukutamu.php
         - modul.php
     - configurasi
         - database.conf.php
     index.php (nah ini dia halaman depan website bukutamu kita)

isi dari index.php yaitu 

<?

//memanggil file-file
include('configurasi/database.conf.php');
include('bukutamu/modul.php');
?

Baik semuanya sudah selesai, ingat pelajari kode php yang tidak dimengerti, selamat mencoba, jangan malu untuk bertanya jika tidak berhasil dan mari kita belajar bersama-sama

Catatan :
1. Kode tersebut berjalan di PHP Register Global Off, lihat tulisan saya sebelumnya
2. Kode diatas masih banyak kekurangan, dan masih dalam pengembangan
3. Akan sangat baik sekalli jika ada salah dibenarkan dan di informasikan lewat comment.


Cetak Tulisan Kirim Keteman Arsip Share ke Facebook


Tulisan lainnya :
- Mengenal Smarty Template Enggine
- Mengirimkan Email Format HTML dan Plaintext Menggunakan PHP
- Mengenal Web 2.0
- Tips Optimasi dan Mengontrol MySQL
- Membuat Welcome Page atau Splash Page di Joomla
Komentar
fauzan 1 - Senin, 07 Juli 2008 22:07 WIB
fauzan,swasta di madiun
om, mau nanya nech.. sy sudah buat buku tamu di paketan hosting gratisan. dah aku coba di localhost bisa alias sukses tapi begitu sya upload kok ga jalan.. knapa ya...? tolong kasih solusi, matur suwun terima kasih
eko 2 - Selasa, 20 Januari 2009 08:10 WIB
eko,swasta di bg
support php?
database-nya sudah di upload jg?
ammars 3 - Sabtu, 21 Februari 2009 12:08 WIB
ammars,Mahasiswa di pemalang
keren tutorialnya. thanks
adhe 4 - Kamis, 12 Maret 2009 21:44 WIB
adhe,Mahasiswa di makassar
Oh iya mas,sy butuh bantuan mas Adi Sumaryadi,sy lg menyelesaikan website sy,tp sy bingung bagaimana membuat buku tamu seperti di websitenya mas Adi Sumaryadi, sy sebenarnya sdh buat buku tamu, tp karena sy punya beberapa halaman di website yang sy buat buku tamu yang sdh ada komentarnya ikut tergabung di halaman lain,sy pengen setiap halaman berbeda mas..Mohon Bantuannya mas Adi Sumaryadi…
Saya tunggu ya…
Thanks Before..
Indra Octama 5 - Selasa, 05 Mei 2009 06:05 WIB
Indra Octama,Mahasiswa di Wates
Terima kasih atas ilmunya
hendri syaputra 6 - Kamis, 07 Mei 2009 01:42 WIB
hendri syaputra,mahasiswa di palembang
maksih mas..
btw mas blh minta source code buku tamu php yang gak menggunakan data base gak y..?
buku tamu yang flat gitu...
thx
Semy 7 - Rabu, 20 Mei 2009 19:49 WIB
Semy,pelajar di cibinong
Thx KK.,.,.,.,.,

Php ssh Ueyy.,.,.,Hhaa
andri 8 - Jum'at, 29 Mei 2009 23:12 WIB
andri,mahasiswa di yogya
makasih mas.. akan saya coba.. saya buat punya saya tapi banyak yang eror.. moga ini berhasil.. semangat!!!!!!!!
222222 9 - Sabtu, 06 Juni 2009 16:47 WIB
222222,2 di fsfsf
e42re2r
sugeng 10 - Jum'at, 12 Juni 2009 14:49 WIB
sugeng,seseorang di blitar
bagus banget mas
mei 11 - Selasa, 28 Juli 2009 22:05 WIB
mei,fhgfhg di hjgjh
fghgfgfkj
yusri 12 - Minggu, 23 Agustus 2009 05:06 WIB
yusri,PeEnEs di Ambon
Bagaimana caranya kalo mau ditambain kode verifikasi anti spam? sekalian minta scriptnya donk...
lisna 13 - Jum'at, 05 Maret 2010 13:22 WIB
lisna,swasta di DIY
saya dah coba source code itu tp kok masih error di penyimpanannya ya?
untung 14 - Rabu, 10 Maret 2010 11:22 WIB
untung,wirausaha di nusawungu
keren ... cm sayang ga bisa d contoh; en d praktekin ga bisa juga
Nuril 15 - Rabu, 23 Juni 2010 09:15 WIB
Nuril,guru di Mojokerto
Mas adi sy orgnya awam IT, sy mau buat media pembelajaran pkai falash 8 yang ada soal pilihan ganda terus keluar nilainya. lah maslahnya nilai, nama siswa, dan kelas pinginnya di simpan dalam database supaya gurunya bisa ngecek sewaktu-waktu. tolong bantuannya berupa tutorial dan klu bisa filenya sekalian dan terserah pki xml atau myaql n php tp tolong langkah2 yang rinci cz sy benar2 awam. bs cepat ya mas....
Nama Email
Alamat Pekerjaan
Homepage / Blog Notifikasi
Komentar

Masukan kata yang ada dalam gambar diatas
Kunjungan 1.042.165 klik
Website ini dibuat dan dimaintenance oleh Adi Sumaryadi 2007