Semuanya Boleh Di Copy, Di Perbanyak, Di Rubah Terserah Kalian Dah... Asal Orang INDONESIA
                              MALINGSIAL DILARANG KERAS
BELAJAR PHP DAN MYSQL BARENG NEWBIE V.1
Pada kesempatan kali ini saya akan memberikan sedikit tutorial mengenai PHP dan MYSQL. Ya... Semampu saya
lah...       Langsung aja deh prakteknya... Untuk pengertian apa itu PHP, Mysql, dll bisa dicari sendiri lewat
             Om Google...


Peralatan yang kita gunakan sih cukup sederhana kayak Dreamweaver, Wampserver yang mudah kalian
temukan untuk di download.
Pertama kali kita akan membuat yang namanya bukutamu.


MEMBUAT BUKUTAMU
Langkah pertama adalah pastikan Wampserver yang telah terinstall dalam keadaan aktif, jalankan Browser
kalian dan ketik pada alamat URLnya “http://localhost” maka akan muncul tampilan seperti berikut.




Klik pada “phpmyadmin” dan langsung buat database dengan nama “bukutamu” pada Create new database
lalu klik Create...
Kemudian pada Create new table on database bukutamu masukkan Name : tamu dan Number of fields : 4 dan
klik Go.




Nah isi sesuai data dibawah ini dan langsung simpan


Field                    Type               Length/Values     Extra
no_tamu                  INT                3                 auto_increment       Primary Key
nama                     VARCHAR            30
email                    VARCHAR            40
pesan                    TEXT

Kira-kira gambarnya seperti ini...




Setelah itu kita siap untuk codingnya...
Buka Windows Explorer kita dan langsung menuju ke

C:wampwww

Buat folder baru, misalkan folder “bukutamu”, nah nantinya semua file yang kita butuhkan akan kita taruh disitu.
Setelah itu buka Dreamweaver kalian, kenapa Dreamweaver? Karena lebih mudah...
Buat New Project dengan memilih Create New PHP.




Pada menu Forms pilih Tool Form...




Nah pada Bagian Properties, isikan input_bukutamu.php




Lalu buat table dan atur design struktur table seperti gambar dibawah ini...
Tambahkan 3 TextField dan 1 Button. Nih dia gambarnya...




Buat sampai tampilannya seperti ini....




Atur Properties untuk nama:




Untuk Email:
Untuk Pesan:




Dan untuk Bottonnya:




        Lalu simpan dengan nama “form_tamu.php” dan simpan di dalam folder bukutamu yang tadi telah kita
siapkan...

Script lengkapnya kayak gini...

<html>
<head>

<body>

<h3>INPUT BUKU TAMU</h3>
<form method="post" action="input_bukutamu.php">
 <table width="600" border="0" cellspacing="1" cellpadding="2">
  <tr>
   <td width="105">Nama</td>
   <td width="484"><input name="txtNama" type="text" id="txtNama" size="30" maxlength="30"></td>
  </tr>
  <tr>
   <td>Email</td>
   <td><input name="txtEmail" type="text" id="txtEmail" size="30" maxlength="40"></td>
  </tr>
  <tr>
   <td>Pesan</td>
   <td><textarea name="txtPesan" cols="50" width="220" height="40" rows="5" id="txtPesan"></textarea></td>
  </tr>
  <tr>
   <td>&nbsp;</td>
   <td><input name="Submit" type="submit" id="Submit" value="Kirim"></td>
  </tr>
        </table>
</form>
<a href=tampil.php>Melihat Buku Tamu</a>
</body>
</head>
</html>

C:wampwwwbukutamu

       Weits sampe lupa, setelah itu kita harus membuat koneksi.php yang berguna untuk melakukan koneksi
terhadap Database...
Oke, buka Project PHP baru,hapus semua code pada tab code dan isi dengan code sebagai berikut...

<?php

// Jangan Lupa Sesuaikan Dengan Settingan Komputer Kita
$my['host']            =     "localhost";
$my['user']            =     "root";
$my['pass']            =     "cruzenaldo";
$my['dbs']             =     "bukutamu";

$koneksi                 = mysql_connect($my['host'], $my['user'], $my['pass']);
if (! $koneksi) {
          echo "Gagal Koneksi Bro....";
          mysql_error();
          }

mysql_select_db($my['dbs'])
       or die ("Database Gak Ada".mysql_error());
?>

        Dan simpan di dalam folder bukutamu dengan nama koneksi.php.
Ingat, pengaturan Host, User, Pass dan Nama Databasenya harus sesuai dengan settingan yang ada di komputer
masing-masing...
Belom tau juga? Oke saya jelasin dikit2 yah...

Untuk Host, User dan Pass sekarang coba buka Browser dan arahkan ke http://localhost/phpmyadmin
Nah Klik Privilages dan kita bisa liat kalo user root pada host localhost masih belum memiliki password.
Nah isi password kita pada password dan klik Go.
Sampai sini belum selesai Bos, jika kita ke PhpMyAdmin atau ke menu apapun akan muncul error yang
mengatakan bahwa PhpMyAdmin tidak bisa digunakan karena tidak diperkenankan (Access Denied)

Permasalah ini terjadi karena PhpMyAdmin tidak menggunakan password baru untuk mengakses database MySql
sehingga mendapat penolakan dari MySql.

Untuk itu kalian harus merubah konfigurasi pada PhpMyAdmin agar menggunakan password yang barusan kalian
berikan. Buka file config.inc.php yang berada pada direktori

C:wampappsphpmyadmin2.11.6

Dengan menggunakan Wordpad atau Notepad lalu cari baris :

$cfg['Servers'][$i]['password']   = '';

Kemudian masukkan password dengan yang sama kalian gunakan pada Menu Edit Privileges PhpMyAdmin...

$cfg['Servers'][$i]['password']   = 'cruzenaldo';

Keren gak penjelasan gua? Itu gua kutip dari bukunya Om Sto yang Joomla 1.5 Dunianya Maya Untungnya
Nyata...

GUBRAAAAKKKK... Wakakakakakak, yang penting kalian ngerti kan... Makasih buat Om Sto
Sekarang buat Project PHP baru dengan Dreamweaver dan klik Tab code kemudian hapus semua code yang
ada disitu dan ganti dengan code berikut...


<?php

// Untuk melakukan pemanggilan koneksi.php.
include "koneksi.php";

// Gunanya mengambil data dari Form
$txtNama     =       $_POST['txtNama'];
$txtEmail    =       $_POST['txtEmail'];
$txtPesan    =       $_POST['txtPesan'];

// Jika inputan $txtNama, $txtEmail, $txtPesan kurang dari 1 maka muncul pesan...
if(strlen($txtNama)<1)
           {
           echo "Nama Masih Kosong";
           }
else if(strlen($txtEmail)<1)
           {
           echo "Email Masih Kosong";
           }
else if(strlen($txtPesan)<1)
           {
           echo "Pesan Masih Kosong";
           }

// Jika telah terpenuhi kriteria diatas maka langsung melakukan perintah SQL INSERT
else {
         $sqlSimpan       =         "INSERT INTO tamu(nama, email, pesan)
                                             values('$txtNama', '$txtEmail', '$txtPesan')";

        mysql_query($sqlSimpan, $koneksi)
               or die ("Gagal Perintah SQL".mysql_error());

        echo "PENYIMPANAN BERHASIL";
}
// Hanya Tambahan saja, jika tidak diperlukan bisa dihapus :)
       echo "<p><a href=form_tamu.php>Kembali Ke Buku Tamu</a> | <a href=tampil.php>Melihat Buku
Tamu</a></p>";
?>

form_tamu.php udah, koneksi.php udah, input_bukutamu.php udah... Nah sekarang kita akan membuat
tampil.php yang berguna untuk menampilkan bukutamu kita... Oke langsung aja...

Buat project baru PHP (capek juga nulis2 gini2 lagi, kalian semua pasti dah ngerti lah... Langsung aja kasih
kodenya.....

Hapus semua code yang ada di tab code dan ganti dengan code ini

<table width="565" border="0" cellspacing="1" cellpadding="2">
 <tr>
  <td width="75">Nama</td>
  <td width="154">Email</td>
  <td width="255">Pesan</td>
 </tr>
<?php

include "koneksi.php";

$sqlTampil = "SELECT * FROM tamu ORDER BY no_tamu DESC";
$qryTampil = mysql_query($sqlTampil, $koneksi)
                          or die ("Gagal query".mysql_error());
$total = mysql_num_rows($qryTampil);
while($dataTampil=mysql_fetch_array($qryTampil)) {
echo "<table width='565' border='0' cellspacing='1' cellpadding='2'>
  <tr>
   <td width='75'>$dataTampil[nama]</td>
   <td width='154'>$dataTampil[email]</td>
   <td width='255'>$dataTampil[pesan]</td>
  </tr>";
}
echo "</table>";
echo "<p><a href=form_tamu.php>Kembali Ke Form Pengisian</a></p>";
?>

Simpan dengan nama tampil.php

Wokeh dah selesai dah bukutamu kita, nah sekarang coba kita jalankan, buka Browser kalian dan arahkan
alamat berikut...

http://localhost/bukutamu/form_tamu.php
Isi sesuai dengan keinginan kalian dan klik Kirim... Lalu klik untuk melihat buku tamu untuk melihat hasilnya...
VALIDASI-nya?...
Wah, asik plus ribet banget neh kalo ngebahas soal ini pada buku tamu yang telah kita buat. Dan mungkin
pembahasan yang saya tulis juga pasti kurang lengkap... Tapi beberapa pasti bakalan saya coba...

Oke pertama apa aja yang bakalan user lakukan ketika dia mencoba fasilitas Bukutamu kita?
Pertama yang orang itu mesti lakukan adalah memasukkan Nama, Email dan Pesan...
Wait... Coba bayangin kalo tuh orang memasukkan emailnya asal2an...
Bingung? Seandainya dia cuman nulis kata-kata asal... Gak pake tanda
“@”... Kan jadi gak asik, betul gak?




Hasilnya kayak gini... Kan jadi kurang ajar, ehhh kurang asik




Oke langsung aja kita perbaiki... Pertama yang harus kita lakukan adalah membuka input_bukutamu.php karena
disinilah letak segala action atau perintah-perintah kita lakukan.
Lihat code berikut...


$txtNama          =        $_POST['txtNama'];
$txtEmail         =        $_POST['txtEmail'];
$txtPesan         =        $_POST['txtPesan'];

Tambahkan code dibawahnya

$valid_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$";

Sehingga menjadi

$txtNama         =        $_POST['txtNama'];
$txtEmail        =        $_POST['txtEmail'];
$txtPesan        =        $_POST['txtPesan'];
$valid_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$";

Lalu kemudian cari code

else if(strlen($txtEmail)<1)
{
      echo "Email Masih Kosong";
      }
Dan ganti menjadi

else if(!eregi($valid_mail, $txtEmail))
          {
          echo "Penulisan Email Salah";
          }

Oke, untuk melakukan validasi input yang lebih spesifik, kita bisa menggunakan fungsi ereg() atau eregi() seperti
yang gua gunakan diatas.
Lengkapnya jadi kayak gini...




Nah sekarang coba jalanin bukutamunya...
Maka yang bakalan muncul adalah...
Nah sekarang isi dengan benar...




Dan hasilnya adalah...




Banyak fungsi-fungsi untuk melakukan validasi...
Contohnya...
Trim() yang berguna untuk menghapus spasi kanan dan kiri teks
htmlentities() yang berguna untuk menkonversi karakter-karakter tertentu dalam tag HTML dan nantinya tag-tag
tersebut akan diterjemahkan sebagai teks biasa.
strip_tags() yang berguna untuk menghilangkan tag-tag HTML dan PHP di dalam sebuah string. Berbeda dengan
htmlentities(), strip_tags() akan membantai habis tag-tag tersebut sehingga tidak ditampilkan.

Dan masih banyak lagi, penggunaannya tergantung dari keperluan kita masing-masing.
Sekarang contoh penggunaan trim().

Contoh, jika user yang kurang kerjaan melakukan inputan hanya spasi saja pada isian Namamaka...




Maka hasil yang didapat adalah...
Sama halnya dengan email dan komentar nantinya... Untuk penggunaannya langsung aja buka
input_bukutamu.php dan cari code berikut...

$txtNama        =       $_POST['txtNama'];
$txtEmail       =       $_POST['txtEmail'];
$txtPesan       =       $_POST['txtPesan'];

Tambahkan sehingga menjadi

$txtNama        =       trim($_POST['txtNama']);
$txtEmail       =       trim($_POST['txtEmail']);
$txtPesan       =       trim($_POST['txtPesan']);

Jadi spasi yang diinput oleh user di awal dan akhir teks akan dihapus... Apabila hanya spasi saja maka inputan
dianggap kosong.

Untuk penggunaan htmlentities() dan strip_tags...

Apabila user melakukan inputan seperti berikut...




Nah pasti kalian bakalan tahu hasil yang akan didapat seperti apa




Waduh, sampai-sampai saya tidak bisa mengcapturenya, pokoknya berantakan banget dah... Maka inilah yang
dinamakan dengan HTML Injection...
Buka input_bukutamu.php dan code yang tadinya

$txtNama       =       trim($_POST['txtNama']);
$txtEmail      =       trim($_POST['txtEmail']);
$txtPesan      =       trim($_POST['txtPesan']);

Tinggal edit menjadi

$txtNama       =       trim(strip_tags($_POST['txtNama']));
$txtEmail      =       trim(strip_tags($_POST['txtEmail']));
$txtPesan      =       trim(htmlentities($_POST['txtPesan']));

Hasilnya...




Hasilnya...




Strip_tags akan menghilangkan tag html sedangkan htmlentities akan membacanya sebagai teks biasa.
Semuanya tergantung kebutuhan kita saja.
Kita bisa menggunakan strip_tags() dengan membiarkan beberapa tag untuk diijinkan. Contoh codenya...

        $txtPesan=strip_tags($txtPesan,'<b>,<u>,<i>');

Jadi pada txtPesan hanya diijinkan tag html <b>, <u> dan <i>

Hasilnya...
SMILES :)
       Supaya lebih asik lagi kita tambahin smiles untuk bukutamunya... Disini saya menggunakan fungsi
ereg_replace(). Masih banyak kegunaan fungsi ereg_replace(), selain untuk smile juga bisa untuk memfilter kata-
kata JOROK yang akan ditulis oleh orang iseng.
Sebenernya masih banyak fungsi yang berguna untuk membuat smiles kayak str_replace() cuman saya juga
masih belajar Cuy

Ya satu-satu lah, ya gak... Ntar malah gak ngerti sama sekali... Oke langsung aja neh prakteknya...

       Pertama siapkan dulu Smilesnya yang disimpan di dalam folder Smiles yang setelah itu kalian letakkan di
dalam folder bukutamu.
Lalu buka input_bukutamu.php dan cari code berikut...

else {

Dibawahnya tambahkan

         $txtPesan=ereg_replace("grin","<img src=smiles/grin.gif>",$txtPesan);
         $txtPesan=ereg_replace("smile","<img src=smiles/smile.gif>",$txtPesan);
         $txtPesan=ereg_replace("XD","<img src=smiles/XD.gif>",$txtPesan);
         $txtPesan=ereg_replace("x_x","<img src=smiles/x_x.gif>",$txtPesan);

Itu baru 4 smiles, ya segitu aja dulu... tambahin sesuka kalian... Intinya nanti grin akan diganti menjadi gambar
yang letaknya di smiles/grin.gif, dst.

Yuk langsung cobain...




Walah berantakan juga, ini tergantung dari kalian aja designnya gimana (Ngeles Mode:ON)... Atau gambarnya
kegedean yah?



FILTER KATA-KATA JOROK
Nah sekarang kita coba yuk... Buka kembali input_bukutamu.php dan di bawah dari smiles-smiles yang telah
kalian buat tambahin aja kayak gini....

         $txtPesan=ereg_replace("Bau","Wangi",$txtPesan);
         $txtPesan=ereg_replace("Jelek","Ganteng",$txtPesan);
         $txtPesan=ereg_replace("Benci","Ngefans",$txtPesan);
         $txtPesan=ereg_replace("FUCK","F**K",$txtPesan);

Jadi kata pertama adalah kata yang akan di filter dan kedua adalah penggantinya...
Code fullnya kayak gini...
Cobain langsung neh




Ribet yah pas kita Input Buku tamunya terus pake harus pergi ke link tampil.php...
Kenapa gak taro aja sekaligus di satu tempat, jadi dibawah Form Input langsung tampil komentarnya....
Gunakan perintah, include(); wokeh buka dulu form_tamu.php dan cari code ini </form> lalu tambahkan...

<?php
 include("tampil.php");
?>
Lengkapnya kayak gini...
Hasilnya




SINGLE QUOTE
Pernah gua mau komentar yang isinya kayak gini

<script>alert('XSS')</script>

Gak ada maksud apa-apa, cuman misalkan kita mau sharing tentang XSS atau apalah yang ada tanda single
quote ( ' )




Malah error kayak gini...

Gagal Perintah SQLYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'XSS')')' at line 2
Waduh, Nah itu bisa banget dimanfaatin untuk tipe serangan yang bernama SQL Injection... Apaan tuh?
Googling atuh Bro....

Untuk bagaimana pengamanannya banyak banget caranya...Ada perintah mysql_real_escape_string yang
berguna untuk menonaktifkan karakter-karakter khusus atau perintah SQL Injection yang dibaca oleh MySql,
magic_quote_gpc, addslashes, dan masih banyak lagi...

Nah disini kita akan mencoba fungsi mysql_real_escape_string... Jadi karakter single quote akan dibaca sebagai
karakter teks biasa...
Sebenernya menggunakan ereg_replace() pun bisa...

        $txtPesan = ereg_replace('&','&amp;',$txtPesan); // mengganti & dengan &amp;
        $txtPesan = ereg_replace('"','&quot;',$txtPesan); // mengganti " dengan &quot;
        $txtPesan = ereg_replace("'",'&rsquo;',$txtPesan); // mengganti ' dengan &rsquo;

Tapi bosen kan, cari yang baru...
Langsung aja buka input_bukutamu.php dan edit lagi

$txtNama         =      trim(strip_tags($_POST['txtNama']));
$txtEmail        =      trim(strip_tags($_POST['txtEmail']));
$txtPesan        =      trim(htmlentities($_POST['txtPesan']));

Jadi seperti berikut

$txtNama         =      trim(strip_tags(mysql_real_escape_string($_POST['txtNama'])));
$txtEmail        =      trim(strip_tags(mysql_real_escape_string($_POST['txtEmail'])));
$txtPesan        =      trim(htmlentities(mysql_real_escape_string($_POST['txtPesan'])));

Pas dicoba
SMILE OTOMATIS? Or What Ever That :)
Gini loh, intinya kan kadang kita males banget kan ngetik kata-kata buat smilenya... Ngerti kan?
Kan males banget nulis =), XD apalagi kalo rumit... Contohnya kayak ininih...




Nah disini saya tambahin neh beberapa script yang kalo kita klik gambarnya bakalan muncul kata-kata untuk
smilenya...

Buat Project baru dan pilih JS atau Javascript... Dan paste code berikut

var smile = new Array();
smile.push(':grin:');
smile.push(':smile:');
smile.push(':XD:');
smile.push(':x_x:');

                 function appendTextToComment(text) {
                         var commentArea = document.getElementById('txtPesan');
                         commentArea.value = commentArea.value + text;
                                       }

Dan simpan dengan nama smiley.js dan untuk bagian ini

smile.push(':grin:');
smile.push(':smile:');
smile.push(':XD:');
smile.push(':x_x:');

Bisa kalian tambahkan sesuai kebutuhan.

Sekarang buka input_bukutamu.php dan edit smilenya aja hingga menjadi seperti ini
       $txtPesan=ereg_replace(":grin:","<img src=smiles/grin.gif>",$txtPesan);
       $txtPesan=ereg_replace(":smile:","<img src=smiles/smile.gif>",$txtPesan);
       $txtPesan=ereg_replace(":XD:","<img src=smiles/XD.gif>",$txtPesan);
       $txtPesan=ereg_replace(":x_x:","<img src=smiles/x_x.gif>",$txtPesan);

Gak ada yang dirubah, cuman smilenya aja... Biar bisa membedakan yang mana smile (teks) dan smile
(gambar). Jadi ditambahin (:) di depan dan belakangnya...
Kemudian buka form_tamu.php dan sisipkan code berikut setelah

<td>Pesan</td>
   <td>

Sehingga lengkapnya...

   <td>Pesan</td>
   <td>
<img src="smiles/grin.gif" alt=":grin:" title=":grin:" onClick="appendTextToComment(':grin:')" width="50" height="50">
<img src="smiles/smile.gif" alt=":smile:" title=":smile:" onClick="appendTextToComment(':smile:')" width="50"
height="50">
<img src="smiles/XD.gif" alt=":XD:" title=":XD:" onClick="appendTextToComment(':XD:')" width="50" height="50">
<img src="smiles/x_x.gif" alt=":x_x:" title=":x_x:" onClick="appendTextToComment(':x_x:')" width="50" height="50">

          <br><br><textarea name="txtPesan" cols="50" width="220" height="40" rows="5"
id="txtPesan"></textarea></td>

Gambarnya




Ini berguna untuk menampilkan daftar-daftar smile pada form_tamu.php.

Terakhir sisipkan script berikut dibawah <head> untuk mencari smiley.js yang tadi telah kita buat...

<script type="text/javascript" src="smiley.js"></script>




Jangan lupa untuk menyesuaikan smile dan shortcutnya pada ketiga file diatas
input_bukutamu.php,form_tamu.php dan smiley.js
Hasilnya...




Hasilnya...




MENGHITUNG JUMLAH KOMENTAR
Weks, cuman tambahan aja...
Buka tampil.php dan cari code dibawah ini

include "koneksi.php";
$sqlTampil = "SELECT * FROM tamu ORDER BY no_tamu DESC";
$qryTampil = mysql_query($sqlTampil, $koneksi)
                          or die ("Gagal query".mysql_error());

Dan dibawahnya tambahkan code

 $total = mysql_num_rows($qryTampil);


Kemudian dibawah echo "</table>"; tambahkan

echo "Jumlah komentar : <b>$total</b>";

Jadi lengkapnya kayak gini
Hasilnya...




Penjelasan dikit, fungsi mysql_num_rows adalah untuk memperoleh informasi jumlah record/baris data dari suatu
query.


CAPTCHA
(Beberapa informasi saya ambil dari Ilmuhacking.com)

Captcha (Completely Automated Turing Test To Tell Computers and Human Apart) adalah sebuah test/ujian yang
“fully automated” untuk membedakan manusia dengan komputer. Ujian ini harus dibuat sedemikian rupa
sehingga teknologi komputer tidak bisa mengerjakan dengan benar tapi bisa dengan mudah dikerjakan oleh
manusia.

Captcha bisa direpresentasikan dalam berbagai bentuk seperti:
   − Text
   − Gambar
   − Video

Text adalah bentuk penyimpanan informasi yang sangat sederhana dan informasi yang diambil tidak
memerlukan pemrosesan apa-apa sehingga bisa dengan mudah dikerjakan oleh mesin. Jadi sangat berbahaya
menggunakan text.

Gambar dalam komputer disimpan dalam bentuk kumpulan warna atau pixel kemudian diencode dalam format
tertentu. Gambar mengandung informasi yang terserat dan implisit. Informasi dalam gambar harus diproses
dengan perhitungan dan komputasi yang kompleks untuk bisa menangkap informasi didalamnnya.

Video adalah kumpulan image dan suara yang disusun sehingga menampilkan suatu informasi. Walaupun
memiliki kompleksitas yang tinggi namun jarang digunakan dikarenakan pertimbangan besarnya ukuran file
videonya.
Nah kesimpulannya bentuk Captcha yang paling umum digunakan adalah image atau gambar. Nah soal
keamanan tergantung dari seberapa rumit gambarnya... Kalo gambar tapi backgroundnya putih doang sama
aja, mesin bisa membaca informasi didalamnya dengan sempurna... Kayak dibawah neh...




Oke sekarang lupain dulu buku tamunya, sekarang kita fokusin dikit mengenai Captcha...
Dulu gua pernah buat yang seperti ini...

action.php

<?php
if(isset($_POST['submit']))
{
   $angkanya=$_POST['angkanya'];
   $sembunyicapca=$_POST['sembunyicapca'];
   if($angkanya==$sembunyicapca)
   {
      print "Lo Keren banget Bro...";
   }
   else
   {
      print "Lo Salah Masukin Kodenya Bos, bisa matematika gak seh?";
   }
}
?>

login.php

<?php
$im = ImageCreate(200, 40); //buat image
$white = ImageColorAllocate($im, 0,0, 0);
$black = ImageColorAllocate($im, 120, 200, 68);
srand((double)microtime()*1000000);
$string = rand(1,10); //Angka Pertama
$string2=rand(1,10); //Angka Kedua
$string3="$string + $string2";
$verification = $string3;
$nilaisembunyi=$string+$string2;
ImageFill($im, 0, 0, $black);
ImageString($im, 4, 70, 10, $verification, $white);
Imagejpeg($im, "captcha.png");
ImageDestroy($im);
print "<form action='action.php' method='post'>";
print "Coba jawab kalo lo manusia beneran:<br>";
print "<input type='hidden' value='$nilaisembunyi' name='sembunyicapca'>";
print "<input type='text' name='angkanya' size='20'><br>";
print "<img src='captcha.png' border='0'><br><br>";
print "<input type='submit' name='submit' value='Kirim'></form>";
?>
Nah jadinya kayak gini...




Intinya source diatas adalah mencocokkan text “angkanya” yaitu tempat menginput jawaban dengan
sembunyicapca yaitu jawaban yang tersembunyi.

Wuih gua dah merasa gua adalah Programmer paling hebat sepanjang sejarah... Nah pas gua baca salah satu
Artikel di Ilmuhacking.com yang mengulas tentang bahaya penggunaan Hidden Value pada Captcha

print "<input type='hidden' value='$nilaisembunyi' name='sembunyicapca'>";

 if($angkanya==$sembunyicapca)

Walah parah banget dah... Coba kalian download addons Firefox Web Developer... (Udah ada di Source
Code)... Penggunaannya tinggal geser aja Addonsnya ke Browser, otomatis langsung keinstall.




Klik yang Forms → Display Form Details. Liat hasilnya...




Parah, keliatan tuh jawabannya 12... Komputer pasti jawab dengan mudah...

Wokeh langsung aja praktek yah, saya gak tau apakah captcha yang saya buat dah memenuhi kriteria yang
aman tapi disini saya buat sesimple dan seasik mungkin (hehehehe...) biar gak ribet. Yang penting tergantung
pengembangan dari kalian aja...

Kelebihannya apa yah? Paling cuman random background dan disini saya mencocokkan dengan Session bukan
dengan hidden field seperti yang saya lakukan diatas...

Mungkin ada yang belom tau session neh? Waduh, Googling dulu deh Bro...

Coz saya juga lagi belajar, ini aja maksa... Wakakakakakak... Tapi gak sulit kok...
Pertama kita akan membuat file php yang berguna untuk melakukan random image... Buat project baru PHP
dengan nama RandomImage.php dan paste code berikut...
<?php
// Start session
session_start();

// Karakter alpha numerik untuk kode
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

// Men-generate 5 karakter kode verifikasi
// secara random, dengan str_shuffle()
$rand = substr(str_shuffle($str), 0, 5);

// Random background images, min=1 dan max=3
$no = rand(1, 3);
$image = imagecreatefromjpeg("./img/bg$no.jpg");

$font = 5;
$black = imagecolorallocate ($image, 0, 0, 0);
$y = (imagesy($image)-imagefontheight($font)) / 2;

// Menulis kode verifikasi di background
imagestring ($image, $font, 8, $y, $rand, $black);

// Hash hasil random, dan simpan di session
$_SESSION['Cruz3N'] = md5($rand);

header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

Kemudian kalian buka form_tamu.php dan edit untuk menambahkan form untuk pengisian captcha dengan
nama txtCapca...
Tambahkan Row dibawah txtPesan sehingga menjadi kayak gini.
Lalu kemudian pada kotak dibawah “Pesan” tambahkan img src nah jadinya kayak gini...

Nah pada code ini

  <tr>
   <td>&nbsp;</td>
   <td><input name="txtCapca" type="text" id="txtCapca"></td>

Ganti &nbsp;-nya dengan

<img src="RandomImage.php" border=1>

Jadinya

  <tr>
   <td><img src="RandomImage.php" border=1></td>
   <td><input name="txtCapca" type="text" id="txtCapca"></td>




Oh iya lupa, tadi kan pada script RandomImage.php ada yang kayak gini

// Random background images, min=1 dan max=3
$no = rand(1, 3);
$image = imagecreatefromjpeg("./img/bg$no.jpg");

Nah kita harus menyiapkan 3 gambar JPG dan masukkan di dalam folder img nah gua udah siapin neh...




Tuh dia gambarnya... Kalian bisa edit atau gambar sedikit...
Nah tahap terakhir buka dan edit input_bukutamu.php

Dibawah include "koneksi.php"; tambahkan

session_start();
Untuk memulai session...
Dibawah $valid_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$"; tambahkan...

$txtCapca       =        $_POST['txtCapca'];

Itu txtCapca yang kita buat pada form_tamu.php
Lalu dibawah

else if(strlen($txtPesan)<1)
           {
           echo "Pesan Masih Kosong";
           }

Tambahkan

else if(md5($txtCapca) <> $_SESSION['Cruz3N'])
         {
         echo "Capca Salah";
         }

Gambarnya




Jadi apabila txtCapca dan session bernama Cruz3N tidak sama maka Capca Salah...
Udah deh dan langsung cobain aja... Nih foldernya jadi kayak gini...




folder img tempat untuk background capca, smiles tempat smiles, dan 6 file php yang tadi dari awal telah kita
buat serta 1 file js untuk Smile Otomatis.
PAGING
Tau paging gak neh? Coba perhatiin gambar dibawah ini...




Gak ada yang aneh yah? Nah coba kalo tuh komentar ada 100, 200 pokoknya banyak banget... Gak
kebayangkan kebawahnya panjang banget...

Paging juga dikenal dengan sebutan pagination (paginate), previous-next, tampilan per halaman, page
navigator, halaman 1..2..3, dst. Pokoknya intinya suatu tehnik untuk membatasi data yang akan ditampilkan
dalam suatu halaman web.

Biasanya paging digunakan untuk menampilkan data yang banyak dan hampir di setiap aplikasi web paging
selalu ada. Langsung aja...

Oke langsung aja, gini Bro biar gak ribet kita buka file tampil.php dan ganti semua codenya dengan code
berikut...

<table width="565" border="0" cellspacing="1" cellpadding="2">
  <tr>
   <td width="75">Nama</td>
   <td width="154">Email</td>
   <td width="255">Pesan</td>
<?php
include "koneksi.php";

$batas=5;
$halaman=$_GET['halaman'];
if(empty($halaman))
{
        $posisi=0;
$halaman=1;
}
else
{
        $posisi = ($halaman-1) * $batas;
}

$tampil="select * from tamu ORDER BY no_tamu DESC limit $posisi,$batas";
$hasil=mysql_query($tampil);


while ($data=mysql_fetch_array($hasil)){
echo "<table width='565' border='0' cellspacing='1' cellpadding='2'>
 <tr>
  <td width='75'>$data[nama]</td>
  <td width='154'>$data[email]</td>
  <td width='255'>$data[pesan]</td>
 </tr>";

}
echo "</table><br>";

$file="form_tamu.php";

$tampil2="select * from tamu";
$hasil2=mysql_query($tampil2);
$jmldata=mysql_num_rows($hasil2);

$jmlhalaman=ceil($jmldata/$batas);


//link ke halaman sebelumnya (previous)
if($halaman > 1)
{
         $previous=$halaman-1;
         echo "<A HREF=$file?halaman=1><< First</A> |
      <A HREF=$file?halaman=$previous>< Previous</A> | ";
}
else
{
         echo "<< First | < Previous | ";
}

$angka=($halaman > 3 ? " ... " : " ");
for($i=$halaman-2;$i<$halaman;$i++)
{
  if ($i < 1)
      continue;
  $angka .= "<a href=$file?halaman=$i>$i</A> ";
}

$angka .= " <b>$halaman</b> ";
for($i=$halaman+1;$i<($halaman+3);$i++)
{
  if ($i > $jmlhalaman)
      break;
  $angka .= "<a href=$file?halaman=$i>$i</A> ";
}

$angka .= ($halaman+2<$jmlhalaman ? " ...
    <a href=$file?halaman=$jmlhalaman>$jmlhalaman</A> " : " ");
echo "$angka";

//link kehalaman berikutnya (Next)
if($halaman < $jmlhalaman)
{
         $next=$halaman+1;
         echo " | <A HREF=$file?halaman=$next>Next ></A> |
  <A HREF=$file?halaman=$jmlhalaman>Last >></A> ";
}
else
{
         echo " | Next > | Last >>";
}
echo "<p>Total Komentar : <b>$jmldata</b> orang</p>";

?>

Lah kok diganti, biar gampang aja jelasinnya Bro. Soalnya kalo sisip-sisipin kadang ribet dan terlalu banyak
gambar




Nah sekarang liat hasilnya Bro...
BIAR TAMBAH RAPIH
Tambahan aja, jadi pada setiap komentar kita bisa memberi garis pembatasnya...
Langsung aja, pertama buka tampil.php dan tambahkan pada code

while ($data=mysql_fetch_array($hasil)){
echo "<table width='565' border='0' cellspacing='1' cellpadding='2'>
 <tr>
  <td width='75'>$data[nama]</td>
  <td width='154'>$data[email]</td>
  <td width='255'>$data[pesan]</td>
 </tr>";

Tepat dibawahnya

 $garis=nl2br($data[txtPesan]);
 echo "$isian <hr color=#1E00FF noshade=noshade />";

Jadi lengkapnya

while ($data=mysql_fetch_array($hasil)){
echo "<table width='565' border='0' cellspacing='1' cellpadding='2'>
 <tr>
  <td width='75'>$data[nama]</td>
  <td width='154'>$data[email]</td>
  <td width='255'>$data[pesan]</td>
 </tr>";
 $garis=nl2br($data[txtPesan]);
 echo "$isian <hr color=#1E00FF noshade=noshade />";

Nah maka kalian akan mendapatkan hasil seperti berikut... hr color=#1E00FF bisa kalian rubah sesuai keinginan...
REDIRECT URL
Wew... Ketika kita akan membuka bukutamu kita maka akan tampil seperti ini...




Keliatan gak asik banget... Solusinya adalah salah satu dari file diatas diberi nama dengan index.php yang tidak
lain tidak bukan adalah form_tamu.php...
Solusi lain adalah menyiapkan file index.php baru yang berisi code sebagai berikut...

<?php
 header('location:form_tamu.php');
?>

Intinya browser akan membaca terlebih dahulu file index.php yang kemudian berisi redirect menuju
form_tamu.php

Tapi permasalahan belum selesai... Ketika saya mencoba untuk mengganti URLnya...

http://localhost/shoutbox/bukutamu/Bukutamu%20+%20Smile%20Otomatis%20+%20Captcha%20+
%20Paging/form_tamu.php

Menjadi

http://localhost/shoutbox/bukutamu/Bukutamu%20+%20Smile%20Otomatis%20+%20Captcha%20+
%20Paging/smiles/

Saya dapat melakukan Browsing terhadap smiles-smiles yang ada di dalam folder smiles... Apakah kita harus
menaruh file index.php di dalamnya?

<?php
 header('location:../form_tamu.php');
?>

Bisa, gak ada masalah... Permasalahannya apabila kita memiliki banyak folder dan apakah harus membuat
index.php sesuai dengan jumlah folder? Solusi yang paling gampang adalah menggunakan .htaccess (Kalian
bisa Googling :p).

isinya

Options All -Indexes

Jadi secara otomatis akan muncul
Secara otomatis ketika kita ingin melakukan browsing ke dalam folder...


REDIRECT BROWSER
Sebenernya code yang digunakan cukup sederhana... Dengan membaca browser apa yang digunakan
dengan memakai fungsi $_SERVER['HTTP_USER_AGENT Dan akan langsung meredirect ke file tujuan...

Codenya sebagai berikut, buat project PHP baru dan beri nama redirect.php

<?php
if (eregi('MSIE',$_SERVER['HTTP_USER_AGENT']))
{
   echo "You are using Internet Explorer.<br />";
         header('location:IE.html');
}
elseif(eregi('Firefox',$_SERVER['HTTP_USER_AGENT']))
{
   echo "You Are Using Mozila Firefox.</br>";
         header('location:FF.html');
}
elseif(eregi( 'Opera',$_SERVER['HTTP_USER_AGENT']))
{
   echo "You Are Using Opera";
         header('location:Opera.html');
}
else
{
   Echo "Your Browser Is ".$_SERVER['HTTP_USER_AGENT'];
}
?>

Misalkan kita ingin pengunjung hanya bisa melihat web kita dengan menggunakan Firefox lakukan seperti
berikut... Buat 1 file html baru yang apabila pengunjung tidak menggunakan Firefox akan teridirect kesitu...
Terserah isinya mau apa saja...


SESSION
Walah, sebenernya saya juga belum mahir neh dalam penggunaan Session dan Cookies... Moga-moga bisa saya
jelasin dengan sesederhana mungkin biar gak bingung...

Session dalam kaitannya dengan waktu merupakan waktu seorang user mengunjungi suatu situs dan akan
berakhir ketika user menutup situs tersebut.



Contoh penggunaan Session

Buat project PHP

index.php
<form action="login.php" method="POST">
Password: <input type="password" name="passnya"><br>
<input type="submit">
</form>

login.php

<?php
session_start();
if($_POST[passnya] == "12345") {
    $_SESSION['liatdunk'] = "yes";
    header("Location: rahasia.php");
} else {
    die("Salah Passwordnya");
}
?>

Logout.php

<?php
session_start();
session_destroy();
echo "Sekarang Anda Telah L0gOut";
echo "<br><a href='index.php'>L0gin</a>";
?>

rahasia.php

<?php
session_start();
if($_SESSION['liatdunk'] == "yes") {
    echo "Ini Pesan Rahasia Untuk Admin :p";
} else {
    die("Harap Login Terlebih Dahulu");
}
echo "<br><a href='logout.php'>LogOut</a>";
?>

Disini saya belum menggunakan database... Langsung aja, ketika saya memasukkan “12345” sebagai password
maka akan tercipta sebuah session “liatdunk”...




Dan pada rahasia.php disitu tertulis kalau sessionnya = “liatdunk” maka yang akan tampil adalah pesan untuk
admin apabila tidak ada session “liatdunk” maka harus login terlebih dahulu...




Fungsi session_destroy pada logout.php digunakan untuk mengakhiri session.


Session Dengan Menggunakan Database
Pertama-tama yang harus kita siapkan adalah membuat databasenya terlebih dahulu yaitu userdb
Setelah itu buat tabel “tbl_user” dan number of fieldsnya 3.
Field                 Type                  Length/Values        Extra
id                    INT                   3                    auto_increment        Primary Key
username              VARCHAR               50
password              VARCHAR               50


Lalu klik SAVE...
Tahap selanjutnya adalah membuat Form untuk melakukan Register.. (form_login.php). Kalian bisa buat
seadanya kok      Yang penting ada textfield untuk Username, Password dan Ulangi Password...




Jangan lupa Properties masing-masing TextField


Properties                           TextField                           Type
Username                             txtnama                             Single Line
Password                             txtpassword                         Password
Ulangi Password                      txtu_password                       Password

Nih codenya “form_daftar.php”

<style type="text/css">
<!--
.style1 {font-size: 24px}
-->
</style>
<form name="form1" method="post" action="input_daftar.php">
<table width="400" border="0">
<tr>
<td colspan="2"><span class="style1">Register</span></td>
</tr>
<tr>
<td>Username : </td>
<td><input name="txtnama" type="text" id="txtnama"></td>
</tr>
<tr>
<td>Password : </td>
<td><input name="txtpassword" type="password" id="txtpassword"></td>
</tr>
<tr>
<td >Ulangi Password : </td>
<td><input name="txtc_password" type="password" id="txtc_password"></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" value="Register"></td>
</tr>
</table>
</form>

input_daftar.php

<?php
include "config.php";

$txtnama       =     trim(strip_tags(mysql_real_escape_string($_POST['txtnama'])));
$txtpassword   =     trim(strip_tags(mysql_real_escape_string($_POST['txtpassword'])));
$txtu_password =     trim(strip_tags(mysql_real_escape_string($_POST['txtu_password'])));
$passmd5 = md5($txtpassword); //Mengenkripsi $txtpassword

if(strlen($txtnama)<1)
           {
           echo "Nama Masih Kosong";
           }
else if(strlen($txtpassword)<1)
{
echo "Password Masih Kosong";
}
else if(strlen($txtu_password)<1)
{
echo "Password Masih Kosong";
}
else if($txtpassword != $txtu_password)
{
print "<script>alert('Konfirmasi password harus sama dengan password !');
javascript:history.go(-1);</script>";
exit;
}

else {
$cek_data="Select * from tbl_user where username='$txtnama'"; // Melakukan Pemeriksaan pada Username di
tabel tbl_user
$hasil=mysql_query($cek_data);
$hasil_cek = mysql_num_rows($hasil);
if ($hasil_cek==0){ //Jika Data Tidak Ditemukan Maka
          $sqlSimpan       =       "INSERT INTO tbl_user(username,password)
                                            values('$txtnama', '$passmd5')";

        mysql_query($sqlSimpan, $koneksi)
               or die ("Gagal Perintah SQL".mysql_error());

        echo "PENYIMPANAN BERHASIL";
        }
        else
{
echo "Data / Username Sudah Ada";
}
}
?>

Code diatas adalah action dari form_register. Mungkin bagian yang baru kita lihat adalah

else if($txtpassword != $txtu_password)
{
print "<script>alert('Konfirmasi password harus sama dengan password !');
javascript:history.go(-1);</script>";
exit;
}

Nah code diatas berguna apabila $txtpassword dan $txtu_password tidak sama maka akan muncul pesan
kesalahan.

Sedangkan baris berikut

else {
$cek_data="Select * from tbl_user where username='$txtnama'"; // Melakukan Pemeriksaan pada Username di
tabel tbl_user
$hasil=mysql_query($cek_data);
$hasil_cek = mysql_num_rows($hasil);
if ($hasil_cek==0){ //Jika Data Tidak Ditemukan Maka
          $sqlSimpan       =       "INSERT INTO tbl_user(username,password)
                                            values('$txtnama', '$passmd5')";

        mysql_query($sqlSimpan, $koneksi)
               or die ("Gagal Perintah SQL".mysql_error());

        echo "PENYIMPANAN BERHASIL";
        }
        else
{
echo "Data / Username Sudah Ada";
}
}

Pertama kali yang dilakukan adalah melakukan perintah SELECT yaitu mencari apakah di dalam tbl_user ada
$txtnama (yaitu username yang diinputkan oleh user) dan setelah itu dengan menggunakan mysql_num_rows
yang digunakan untuk memperoleh informasi jumlah record atau baris data dari suatu query. Apabila data tidak
ditemukan, (ditandai dengan “==” yaitu dibaca sama dengan, jika “!=” berarti tidak sama dengan) maka
melakukan perintah INSERT yaitu memasukkan semua informasi ke dalam database. Jika ada maka Data /
Username sudah ada. Hal ini berguna untuk mencegah terjadinya data yang sama.

Setelah itu kita akan membuat form login...




form_login.php

<html><head><title>Halaman Login ... </title></head>
<body>
<table border=1 align=center>
<form method=post action=cek.php>
<tr>
 <td>Username</td>
 <td><input type=text name=username></tr>
<tr>
 <td>Password</td>
 <td><input type=password name=password></tr>
<tr><td></td><td><input type=submit name=submit value=Submit></tr>
<tr>
<td></td>
 <td><a href="form_daftar.php">Register?</a>
</tr>
</form>
</table>
</body>
</html>

cek.php

<?php
session_start(); // Memulai Session
include "config.php" ; // Memanggil config.php untuk konfigurasi database
$username = $_POST['username'];
$password = $_POST['password'];
$passwordhash = md5($password); // Mengenkripsikannya untuk dicocokan dengan database
$sql = "select username, password from tbl_user where username = '$username' and password =
'$passwordhash'";
$sqlrun = mysql_query($sql);
$cek = mysql_num_rows($sqlrun);
if ($cek >= 1 )
{
$_SESSION['username'] = $username;
header("location: main.php");
}
else
header("location: form_login.php");
?>

Cek.php adalah action dari form_login.php. Perintah $passwordhash = md5($password); berguna untuk
melakukan enkripsi data. Nah kalau mau juga semua data yang ada di database termasuk username, email,
pesan, dll bisa dienkripsi. Biar lebih aman (mungkin ). Nah apabila setelah dilakukan pengecekkan password

ditemukan maka akan diberikan session['username'] dan setelah itu akan diredirect menuju main.php.

main.php

<?php
session_start(); // Memulai Session
if (ISSET($_SESSION['username']))
{
echo "Selamat Datang<br>";
echo $_SESSION['username'];
echo "<br><a href=logout.php?logout=yes>logout</a>";
}
else
header("location: form_login.php");
?>

Nah untuk main.php akan dilakukan pengecekan session. Jika terdapat session['username'] maka akan
ditampilkan pesan selamat datang. Apabila tidak ada maka akan diredirect menuju form_login.php.

config.php

<?php

// Jangan Lupa Sesuaikan Dengan Settingan Komputer Kita
$my['host']            =     "localhost";
$my['user']            =     "root";
$my['pass']            =     "cruzenaldo";
$my['dbs']             =     "userdb";
$koneksi                 = mysql_connect($my['host'], $my['user'], $my['pass']);
if (! $koneksi) {
          echo "Gagal Koneksi Bro....";
          mysql_error();
          }

mysql_select_db($my['dbs'])
       or die ("Database Gak Ada".mysql_error());
?>

Nah config.php juga penting neh, jangan lupa dibuat untuk melakukan koneksi dengan database.

logout.php

<?php
session_start();
if ($_REQUEST['logout'] == "yes")
{
if(ISSET($_SESSION['username']))
{
UNSET($_SESSION['username']);
}
}
header("location: form_login.php");
session_destroy();
?>

Di dalam main.php ada perintah seperti ini

echo "<br><a href=logout.php?logout=yes>logout</a>";

Nah dalam logout.php apabila $_REQUEST['logout'] == “yes” maka akan dilakukan penghapusan session.

Selesai dan kalian bisa mencobanya. Setelah saya coba-coba ada satu hal yang mengganjal saya. Saya pernah
membuat web dengan menggunakan metode diatas dan apa yang terjadi...

http://localhost/webgua/catchmeifyoucanasshole/modul/mod_agenda/agenda.php

Ini hanya sebagai contoh, apabila saya mengetahui isi direktori di dalam folder admin yaitu “
catchmeifyoucanasshole/modul/mod_agenda/agenda.php” maka apa yang terjadi?
Walaupun memang saya tidak dapat melakukan pengisian data cuman gimana gitu
Saya hanya tidak ingin apabila orang lain melakukannya dan mungkin melikat data-data penting... Terlalu
paranoid neh...

Contoh sederhana aja yah... Misalkan kita membuat jumlah_user.php yang berguna untuk menghitung jumlah
user pada tbl_user.

jumlah_user.php

<?php
 include "config.php";
 $sqljumlah = mysql_query("SELECT * FROM tbl_user", $koneksi);
 $total = mysql_num_rows($sqljumlah);
 echo "<br>Jumlah Anggota : <b>$total</b>";
?>

Nah ubah sedikit main.php

<?php
session_start(); // Memulai Session
if (ISSET($_SESSION['username']))
{
echo "Selamat Datang<br>";
echo $_SESSION['username'];
include "jumlah.php";
echo "<br><a href=logout.php?logout=yes>logout</a>";
}
else
header("location: form_login.php");
?>

Maka setelah kita melakukan login maka kita akan mendapatkan tampilan seperti berikut...




Nah oke, aman-aman aja... Nah coba kita ketik di URL

http://localhost/login%20asik/New%20Folder/jumlah.php

Dan hasilnya adalah




Sementara kita tidak ingin orang lain melihatnya... Yang kita lakukan adalah membuat file php baru yang
bernama cek_session.php

<?php
session_start();
if(! (session_is_registered(username))) {
           echo "<div align=center><b> PERHATIAN ..!!! </b><br>";
           echo "UNTUK MELIHAT JUMLAH USER KAMU HARUS LOGIN DULU :p</div>";

        include "form_login.php";
exit;
}
?>

Nah code diatas digunakan untuk melakukan pengecekan session(username)...

Nah pada jumlah_user.php tambahkan include "cek.session.php";

<?php
 include "config.php";
 include "cek.session.php";
 $sqljumlah = mysql_query("SELECT * FROM tbl_user", $koneksi);
 $total = mysql_num_rows($sqljumlah);
 echo "<br>Jumlah Anggota : <b>$total</b>";
?>

Maka setelah kita belum melakukan login terlebih dahulu dan mengetikkan URL tempat jumlah_user.php berada
maka akan muncul
TAMBAHAN IMPORT DATABASE
Nah bagi yang belum tau... Saya menyiapkan file bukutamu.sql di dalam folder db. Nah sekarang
buka Browser dan menuju..

http://localhost/phpmyadmin/

Tulis databasenya dulu yaitu bukutamu dan create




Klik tab import...




Browse bukutamu.sql




Dan Go.... Selesai sudah...
Oke sampe disini dulu neh saya kasih tutorialnya... Kenapa dah selesai, tenang aja... Kalo TUHAN
berkenan bakalan ada V.2,V.3 dan seterusnya...

Buset kalo saya selesain sampe jadi website pegel dah bakalan jadi basi nanti... Pokoknya kembangin
dah.... Saya tau kalian lebih hebat dari saya.... Hehehehehehe....

Saya gak saranin apa yang saya jabarkan disini kalian tiru dan menjadi patokan... Saya hanya
mencoba untuk menjadikan PHP menjadi salah satu bahasa pemrograman yang asik dan keren
banget... PHP sexy banget dah

Salam aja buat semuanya...

Thanks to:
- My JESUS, Without YOU Im Nothing...
- My Family Di Dunia Nyata...
- My Family Di Dunia Maya, Jasakom, devilzc0de, Echo, Xcode, AntiJasakom, Flyninja, Dxline...
- witha a.k.a Chrn0... Yang selalu menemani hari2 gua... Hehehehehehe....
- And My Brother Ari yang ada disamping gua...




Best Regard

Cruz3N
cruzenaldo[dot]blogspot[dot]com
cruzenaldo[at]gmail[dot]com
cruzenaldo[at]yahoo[dot]co[dot]id




   Semuanya Boleh Di Copy, Di Perbanyak, Di Rubah Terserah Kalian Dah... Asal Orang INDONESIA
                                 MALINGSIAL DILARANG KERAS

Belajar php dan my sql bareng newbie v.1

  • 1.
    Semuanya Boleh DiCopy, Di Perbanyak, Di Rubah Terserah Kalian Dah... Asal Orang INDONESIA MALINGSIAL DILARANG KERAS
  • 2.
    BELAJAR PHP DANMYSQL BARENG NEWBIE V.1 Pada kesempatan kali ini saya akan memberikan sedikit tutorial mengenai PHP dan MYSQL. Ya... Semampu saya lah... Langsung aja deh prakteknya... Untuk pengertian apa itu PHP, Mysql, dll bisa dicari sendiri lewat Om Google... Peralatan yang kita gunakan sih cukup sederhana kayak Dreamweaver, Wampserver yang mudah kalian temukan untuk di download. Pertama kali kita akan membuat yang namanya bukutamu. MEMBUAT BUKUTAMU Langkah pertama adalah pastikan Wampserver yang telah terinstall dalam keadaan aktif, jalankan Browser kalian dan ketik pada alamat URLnya “http://localhost” maka akan muncul tampilan seperti berikut. Klik pada “phpmyadmin” dan langsung buat database dengan nama “bukutamu” pada Create new database lalu klik Create...
  • 3.
    Kemudian pada Createnew table on database bukutamu masukkan Name : tamu dan Number of fields : 4 dan klik Go. Nah isi sesuai data dibawah ini dan langsung simpan Field Type Length/Values Extra no_tamu INT 3 auto_increment Primary Key nama VARCHAR 30 email VARCHAR 40 pesan TEXT Kira-kira gambarnya seperti ini... Setelah itu kita siap untuk codingnya...
  • 4.
    Buka Windows Explorerkita dan langsung menuju ke C:wampwww Buat folder baru, misalkan folder “bukutamu”, nah nantinya semua file yang kita butuhkan akan kita taruh disitu. Setelah itu buka Dreamweaver kalian, kenapa Dreamweaver? Karena lebih mudah... Buat New Project dengan memilih Create New PHP. Pada menu Forms pilih Tool Form... Nah pada Bagian Properties, isikan input_bukutamu.php Lalu buat table dan atur design struktur table seperti gambar dibawah ini...
  • 5.
    Tambahkan 3 TextFielddan 1 Button. Nih dia gambarnya... Buat sampai tampilannya seperti ini.... Atur Properties untuk nama: Untuk Email:
  • 6.
    Untuk Pesan: Dan untukBottonnya: Lalu simpan dengan nama “form_tamu.php” dan simpan di dalam folder bukutamu yang tadi telah kita siapkan... Script lengkapnya kayak gini... <html> <head> <body> <h3>INPUT BUKU TAMU</h3> <form method="post" action="input_bukutamu.php"> <table width="600" border="0" cellspacing="1" cellpadding="2"> <tr> <td width="105">Nama</td> <td width="484"><input name="txtNama" type="text" id="txtNama" size="30" maxlength="30"></td> </tr> <tr> <td>Email</td> <td><input name="txtEmail" type="text" id="txtEmail" size="30" maxlength="40"></td> </tr> <tr> <td>Pesan</td> <td><textarea name="txtPesan" cols="50" width="220" height="40" rows="5" id="txtPesan"></textarea></td> </tr> <tr> <td>&nbsp;</td> <td><input name="Submit" type="submit" id="Submit" value="Kirim"></td> </tr> </table> </form> <a href=tampil.php>Melihat Buku Tamu</a> </body> </head> </html> C:wampwwwbukutamu Weits sampe lupa, setelah itu kita harus membuat koneksi.php yang berguna untuk melakukan koneksi terhadap Database...
  • 7.
    Oke, buka ProjectPHP baru,hapus semua code pada tab code dan isi dengan code sebagai berikut... <?php // Jangan Lupa Sesuaikan Dengan Settingan Komputer Kita $my['host'] = "localhost"; $my['user'] = "root"; $my['pass'] = "cruzenaldo"; $my['dbs'] = "bukutamu"; $koneksi = mysql_connect($my['host'], $my['user'], $my['pass']); if (! $koneksi) { echo "Gagal Koneksi Bro...."; mysql_error(); } mysql_select_db($my['dbs']) or die ("Database Gak Ada".mysql_error()); ?> Dan simpan di dalam folder bukutamu dengan nama koneksi.php. Ingat, pengaturan Host, User, Pass dan Nama Databasenya harus sesuai dengan settingan yang ada di komputer masing-masing... Belom tau juga? Oke saya jelasin dikit2 yah... Untuk Host, User dan Pass sekarang coba buka Browser dan arahkan ke http://localhost/phpmyadmin Nah Klik Privilages dan kita bisa liat kalo user root pada host localhost masih belum memiliki password.
  • 8.
    Nah isi passwordkita pada password dan klik Go. Sampai sini belum selesai Bos, jika kita ke PhpMyAdmin atau ke menu apapun akan muncul error yang mengatakan bahwa PhpMyAdmin tidak bisa digunakan karena tidak diperkenankan (Access Denied) Permasalah ini terjadi karena PhpMyAdmin tidak menggunakan password baru untuk mengakses database MySql sehingga mendapat penolakan dari MySql. Untuk itu kalian harus merubah konfigurasi pada PhpMyAdmin agar menggunakan password yang barusan kalian berikan. Buka file config.inc.php yang berada pada direktori C:wampappsphpmyadmin2.11.6 Dengan menggunakan Wordpad atau Notepad lalu cari baris : $cfg['Servers'][$i]['password'] = ''; Kemudian masukkan password dengan yang sama kalian gunakan pada Menu Edit Privileges PhpMyAdmin... $cfg['Servers'][$i]['password'] = 'cruzenaldo'; Keren gak penjelasan gua? Itu gua kutip dari bukunya Om Sto yang Joomla 1.5 Dunianya Maya Untungnya Nyata... GUBRAAAAKKKK... Wakakakakakak, yang penting kalian ngerti kan... Makasih buat Om Sto Sekarang buat Project PHP baru dengan Dreamweaver dan klik Tab code kemudian hapus semua code yang ada disitu dan ganti dengan code berikut... <?php // Untuk melakukan pemanggilan koneksi.php. include "koneksi.php"; // Gunanya mengambil data dari Form $txtNama = $_POST['txtNama']; $txtEmail = $_POST['txtEmail']; $txtPesan = $_POST['txtPesan']; // Jika inputan $txtNama, $txtEmail, $txtPesan kurang dari 1 maka muncul pesan... if(strlen($txtNama)<1) { echo "Nama Masih Kosong"; } else if(strlen($txtEmail)<1) { echo "Email Masih Kosong"; } else if(strlen($txtPesan)<1) { echo "Pesan Masih Kosong"; } // Jika telah terpenuhi kriteria diatas maka langsung melakukan perintah SQL INSERT else { $sqlSimpan = "INSERT INTO tamu(nama, email, pesan) values('$txtNama', '$txtEmail', '$txtPesan')"; mysql_query($sqlSimpan, $koneksi) or die ("Gagal Perintah SQL".mysql_error()); echo "PENYIMPANAN BERHASIL";
  • 9.
    } // Hanya Tambahansaja, jika tidak diperlukan bisa dihapus :) echo "<p><a href=form_tamu.php>Kembali Ke Buku Tamu</a> | <a href=tampil.php>Melihat Buku Tamu</a></p>"; ?> form_tamu.php udah, koneksi.php udah, input_bukutamu.php udah... Nah sekarang kita akan membuat tampil.php yang berguna untuk menampilkan bukutamu kita... Oke langsung aja... Buat project baru PHP (capek juga nulis2 gini2 lagi, kalian semua pasti dah ngerti lah... Langsung aja kasih kodenya..... Hapus semua code yang ada di tab code dan ganti dengan code ini <table width="565" border="0" cellspacing="1" cellpadding="2"> <tr> <td width="75">Nama</td> <td width="154">Email</td> <td width="255">Pesan</td> </tr> <?php include "koneksi.php"; $sqlTampil = "SELECT * FROM tamu ORDER BY no_tamu DESC"; $qryTampil = mysql_query($sqlTampil, $koneksi) or die ("Gagal query".mysql_error()); $total = mysql_num_rows($qryTampil); while($dataTampil=mysql_fetch_array($qryTampil)) { echo "<table width='565' border='0' cellspacing='1' cellpadding='2'> <tr> <td width='75'>$dataTampil[nama]</td> <td width='154'>$dataTampil[email]</td> <td width='255'>$dataTampil[pesan]</td> </tr>"; } echo "</table>"; echo "<p><a href=form_tamu.php>Kembali Ke Form Pengisian</a></p>"; ?> Simpan dengan nama tampil.php Wokeh dah selesai dah bukutamu kita, nah sekarang coba kita jalankan, buka Browser kalian dan arahkan alamat berikut... http://localhost/bukutamu/form_tamu.php
  • 10.
    Isi sesuai dengankeinginan kalian dan klik Kirim... Lalu klik untuk melihat buku tamu untuk melihat hasilnya...
  • 11.
    VALIDASI-nya?... Wah, asik plusribet banget neh kalo ngebahas soal ini pada buku tamu yang telah kita buat. Dan mungkin pembahasan yang saya tulis juga pasti kurang lengkap... Tapi beberapa pasti bakalan saya coba... Oke pertama apa aja yang bakalan user lakukan ketika dia mencoba fasilitas Bukutamu kita? Pertama yang orang itu mesti lakukan adalah memasukkan Nama, Email dan Pesan... Wait... Coba bayangin kalo tuh orang memasukkan emailnya asal2an... Bingung? Seandainya dia cuman nulis kata-kata asal... Gak pake tanda “@”... Kan jadi gak asik, betul gak? Hasilnya kayak gini... Kan jadi kurang ajar, ehhh kurang asik Oke langsung aja kita perbaiki... Pertama yang harus kita lakukan adalah membuka input_bukutamu.php karena disinilah letak segala action atau perintah-perintah kita lakukan. Lihat code berikut... $txtNama = $_POST['txtNama']; $txtEmail = $_POST['txtEmail']; $txtPesan = $_POST['txtPesan']; Tambahkan code dibawahnya $valid_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$"; Sehingga menjadi $txtNama = $_POST['txtNama']; $txtEmail = $_POST['txtEmail']; $txtPesan = $_POST['txtPesan']; $valid_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$"; Lalu kemudian cari code else if(strlen($txtEmail)<1)
  • 12.
    { echo "Email Masih Kosong"; } Dan ganti menjadi else if(!eregi($valid_mail, $txtEmail)) { echo "Penulisan Email Salah"; } Oke, untuk melakukan validasi input yang lebih spesifik, kita bisa menggunakan fungsi ereg() atau eregi() seperti yang gua gunakan diatas. Lengkapnya jadi kayak gini... Nah sekarang coba jalanin bukutamunya... Maka yang bakalan muncul adalah...
  • 13.
    Nah sekarang isidengan benar... Dan hasilnya adalah... Banyak fungsi-fungsi untuk melakukan validasi... Contohnya... Trim() yang berguna untuk menghapus spasi kanan dan kiri teks htmlentities() yang berguna untuk menkonversi karakter-karakter tertentu dalam tag HTML dan nantinya tag-tag tersebut akan diterjemahkan sebagai teks biasa. strip_tags() yang berguna untuk menghilangkan tag-tag HTML dan PHP di dalam sebuah string. Berbeda dengan htmlentities(), strip_tags() akan membantai habis tag-tag tersebut sehingga tidak ditampilkan. Dan masih banyak lagi, penggunaannya tergantung dari keperluan kita masing-masing. Sekarang contoh penggunaan trim(). Contoh, jika user yang kurang kerjaan melakukan inputan hanya spasi saja pada isian Namamaka... Maka hasil yang didapat adalah...
  • 14.
    Sama halnya denganemail dan komentar nantinya... Untuk penggunaannya langsung aja buka input_bukutamu.php dan cari code berikut... $txtNama = $_POST['txtNama']; $txtEmail = $_POST['txtEmail']; $txtPesan = $_POST['txtPesan']; Tambahkan sehingga menjadi $txtNama = trim($_POST['txtNama']); $txtEmail = trim($_POST['txtEmail']); $txtPesan = trim($_POST['txtPesan']); Jadi spasi yang diinput oleh user di awal dan akhir teks akan dihapus... Apabila hanya spasi saja maka inputan dianggap kosong. Untuk penggunaan htmlentities() dan strip_tags... Apabila user melakukan inputan seperti berikut... Nah pasti kalian bakalan tahu hasil yang akan didapat seperti apa Waduh, sampai-sampai saya tidak bisa mengcapturenya, pokoknya berantakan banget dah... Maka inilah yang dinamakan dengan HTML Injection...
  • 15.
    Buka input_bukutamu.php dancode yang tadinya $txtNama = trim($_POST['txtNama']); $txtEmail = trim($_POST['txtEmail']); $txtPesan = trim($_POST['txtPesan']); Tinggal edit menjadi $txtNama = trim(strip_tags($_POST['txtNama'])); $txtEmail = trim(strip_tags($_POST['txtEmail'])); $txtPesan = trim(htmlentities($_POST['txtPesan'])); Hasilnya... Hasilnya... Strip_tags akan menghilangkan tag html sedangkan htmlentities akan membacanya sebagai teks biasa. Semuanya tergantung kebutuhan kita saja. Kita bisa menggunakan strip_tags() dengan membiarkan beberapa tag untuk diijinkan. Contoh codenya... $txtPesan=strip_tags($txtPesan,'<b>,<u>,<i>'); Jadi pada txtPesan hanya diijinkan tag html <b>, <u> dan <i> Hasilnya...
  • 16.
    SMILES :) Supaya lebih asik lagi kita tambahin smiles untuk bukutamunya... Disini saya menggunakan fungsi ereg_replace(). Masih banyak kegunaan fungsi ereg_replace(), selain untuk smile juga bisa untuk memfilter kata- kata JOROK yang akan ditulis oleh orang iseng. Sebenernya masih banyak fungsi yang berguna untuk membuat smiles kayak str_replace() cuman saya juga masih belajar Cuy Ya satu-satu lah, ya gak... Ntar malah gak ngerti sama sekali... Oke langsung aja neh prakteknya... Pertama siapkan dulu Smilesnya yang disimpan di dalam folder Smiles yang setelah itu kalian letakkan di dalam folder bukutamu.
  • 17.
    Lalu buka input_bukutamu.phpdan cari code berikut... else { Dibawahnya tambahkan $txtPesan=ereg_replace("grin","<img src=smiles/grin.gif>",$txtPesan); $txtPesan=ereg_replace("smile","<img src=smiles/smile.gif>",$txtPesan); $txtPesan=ereg_replace("XD","<img src=smiles/XD.gif>",$txtPesan); $txtPesan=ereg_replace("x_x","<img src=smiles/x_x.gif>",$txtPesan); Itu baru 4 smiles, ya segitu aja dulu... tambahin sesuka kalian... Intinya nanti grin akan diganti menjadi gambar yang letaknya di smiles/grin.gif, dst. Yuk langsung cobain... Walah berantakan juga, ini tergantung dari kalian aja designnya gimana (Ngeles Mode:ON)... Atau gambarnya kegedean yah? FILTER KATA-KATA JOROK Nah sekarang kita coba yuk... Buka kembali input_bukutamu.php dan di bawah dari smiles-smiles yang telah kalian buat tambahin aja kayak gini.... $txtPesan=ereg_replace("Bau","Wangi",$txtPesan); $txtPesan=ereg_replace("Jelek","Ganteng",$txtPesan); $txtPesan=ereg_replace("Benci","Ngefans",$txtPesan); $txtPesan=ereg_replace("FUCK","F**K",$txtPesan); Jadi kata pertama adalah kata yang akan di filter dan kedua adalah penggantinya... Code fullnya kayak gini...
  • 18.
    Cobain langsung neh Ribetyah pas kita Input Buku tamunya terus pake harus pergi ke link tampil.php... Kenapa gak taro aja sekaligus di satu tempat, jadi dibawah Form Input langsung tampil komentarnya.... Gunakan perintah, include(); wokeh buka dulu form_tamu.php dan cari code ini </form> lalu tambahkan... <?php include("tampil.php"); ?> Lengkapnya kayak gini...
  • 19.
    Hasilnya SINGLE QUOTE Pernah guamau komentar yang isinya kayak gini <script>alert('XSS')</script> Gak ada maksud apa-apa, cuman misalkan kita mau sharing tentang XSS atau apalah yang ada tanda single quote ( ' ) Malah error kayak gini... Gagal Perintah SQLYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server
  • 20.
    version for theright syntax to use near 'XSS')')' at line 2 Waduh, Nah itu bisa banget dimanfaatin untuk tipe serangan yang bernama SQL Injection... Apaan tuh? Googling atuh Bro.... Untuk bagaimana pengamanannya banyak banget caranya...Ada perintah mysql_real_escape_string yang berguna untuk menonaktifkan karakter-karakter khusus atau perintah SQL Injection yang dibaca oleh MySql, magic_quote_gpc, addslashes, dan masih banyak lagi... Nah disini kita akan mencoba fungsi mysql_real_escape_string... Jadi karakter single quote akan dibaca sebagai karakter teks biasa... Sebenernya menggunakan ereg_replace() pun bisa... $txtPesan = ereg_replace('&','&amp;',$txtPesan); // mengganti & dengan &amp; $txtPesan = ereg_replace('"','&quot;',$txtPesan); // mengganti " dengan &quot; $txtPesan = ereg_replace("'",'&rsquo;',$txtPesan); // mengganti ' dengan &rsquo; Tapi bosen kan, cari yang baru... Langsung aja buka input_bukutamu.php dan edit lagi $txtNama = trim(strip_tags($_POST['txtNama'])); $txtEmail = trim(strip_tags($_POST['txtEmail'])); $txtPesan = trim(htmlentities($_POST['txtPesan'])); Jadi seperti berikut $txtNama = trim(strip_tags(mysql_real_escape_string($_POST['txtNama']))); $txtEmail = trim(strip_tags(mysql_real_escape_string($_POST['txtEmail']))); $txtPesan = trim(htmlentities(mysql_real_escape_string($_POST['txtPesan']))); Pas dicoba
  • 21.
    SMILE OTOMATIS? OrWhat Ever That :) Gini loh, intinya kan kadang kita males banget kan ngetik kata-kata buat smilenya... Ngerti kan? Kan males banget nulis =), XD apalagi kalo rumit... Contohnya kayak ininih... Nah disini saya tambahin neh beberapa script yang kalo kita klik gambarnya bakalan muncul kata-kata untuk smilenya... Buat Project baru dan pilih JS atau Javascript... Dan paste code berikut var smile = new Array(); smile.push(':grin:'); smile.push(':smile:'); smile.push(':XD:'); smile.push(':x_x:'); function appendTextToComment(text) { var commentArea = document.getElementById('txtPesan'); commentArea.value = commentArea.value + text; } Dan simpan dengan nama smiley.js dan untuk bagian ini smile.push(':grin:'); smile.push(':smile:'); smile.push(':XD:'); smile.push(':x_x:'); Bisa kalian tambahkan sesuai kebutuhan. Sekarang buka input_bukutamu.php dan edit smilenya aja hingga menjadi seperti ini $txtPesan=ereg_replace(":grin:","<img src=smiles/grin.gif>",$txtPesan); $txtPesan=ereg_replace(":smile:","<img src=smiles/smile.gif>",$txtPesan); $txtPesan=ereg_replace(":XD:","<img src=smiles/XD.gif>",$txtPesan); $txtPesan=ereg_replace(":x_x:","<img src=smiles/x_x.gif>",$txtPesan); Gak ada yang dirubah, cuman smilenya aja... Biar bisa membedakan yang mana smile (teks) dan smile (gambar). Jadi ditambahin (:) di depan dan belakangnya...
  • 22.
    Kemudian buka form_tamu.phpdan sisipkan code berikut setelah <td>Pesan</td> <td> Sehingga lengkapnya... <td>Pesan</td> <td> <img src="smiles/grin.gif" alt=":grin:" title=":grin:" onClick="appendTextToComment(':grin:')" width="50" height="50"> <img src="smiles/smile.gif" alt=":smile:" title=":smile:" onClick="appendTextToComment(':smile:')" width="50" height="50"> <img src="smiles/XD.gif" alt=":XD:" title=":XD:" onClick="appendTextToComment(':XD:')" width="50" height="50"> <img src="smiles/x_x.gif" alt=":x_x:" title=":x_x:" onClick="appendTextToComment(':x_x:')" width="50" height="50"> <br><br><textarea name="txtPesan" cols="50" width="220" height="40" rows="5" id="txtPesan"></textarea></td> Gambarnya Ini berguna untuk menampilkan daftar-daftar smile pada form_tamu.php. Terakhir sisipkan script berikut dibawah <head> untuk mencari smiley.js yang tadi telah kita buat... <script type="text/javascript" src="smiley.js"></script> Jangan lupa untuk menyesuaikan smile dan shortcutnya pada ketiga file diatas input_bukutamu.php,form_tamu.php dan smiley.js
  • 23.
    Hasilnya... Hasilnya... MENGHITUNG JUMLAH KOMENTAR Weks,cuman tambahan aja... Buka tampil.php dan cari code dibawah ini include "koneksi.php"; $sqlTampil = "SELECT * FROM tamu ORDER BY no_tamu DESC"; $qryTampil = mysql_query($sqlTampil, $koneksi) or die ("Gagal query".mysql_error()); Dan dibawahnya tambahkan code $total = mysql_num_rows($qryTampil); Kemudian dibawah echo "</table>"; tambahkan echo "Jumlah komentar : <b>$total</b>"; Jadi lengkapnya kayak gini
  • 24.
    Hasilnya... Penjelasan dikit, fungsimysql_num_rows adalah untuk memperoleh informasi jumlah record/baris data dari suatu query. CAPTCHA (Beberapa informasi saya ambil dari Ilmuhacking.com) Captcha (Completely Automated Turing Test To Tell Computers and Human Apart) adalah sebuah test/ujian yang “fully automated” untuk membedakan manusia dengan komputer. Ujian ini harus dibuat sedemikian rupa sehingga teknologi komputer tidak bisa mengerjakan dengan benar tapi bisa dengan mudah dikerjakan oleh manusia. Captcha bisa direpresentasikan dalam berbagai bentuk seperti: − Text − Gambar − Video Text adalah bentuk penyimpanan informasi yang sangat sederhana dan informasi yang diambil tidak memerlukan pemrosesan apa-apa sehingga bisa dengan mudah dikerjakan oleh mesin. Jadi sangat berbahaya menggunakan text. Gambar dalam komputer disimpan dalam bentuk kumpulan warna atau pixel kemudian diencode dalam format tertentu. Gambar mengandung informasi yang terserat dan implisit. Informasi dalam gambar harus diproses dengan perhitungan dan komputasi yang kompleks untuk bisa menangkap informasi didalamnnya. Video adalah kumpulan image dan suara yang disusun sehingga menampilkan suatu informasi. Walaupun memiliki kompleksitas yang tinggi namun jarang digunakan dikarenakan pertimbangan besarnya ukuran file videonya.
  • 25.
    Nah kesimpulannya bentukCaptcha yang paling umum digunakan adalah image atau gambar. Nah soal keamanan tergantung dari seberapa rumit gambarnya... Kalo gambar tapi backgroundnya putih doang sama aja, mesin bisa membaca informasi didalamnya dengan sempurna... Kayak dibawah neh... Oke sekarang lupain dulu buku tamunya, sekarang kita fokusin dikit mengenai Captcha... Dulu gua pernah buat yang seperti ini... action.php <?php if(isset($_POST['submit'])) { $angkanya=$_POST['angkanya']; $sembunyicapca=$_POST['sembunyicapca']; if($angkanya==$sembunyicapca) { print "Lo Keren banget Bro..."; } else { print "Lo Salah Masukin Kodenya Bos, bisa matematika gak seh?"; } } ?> login.php <?php $im = ImageCreate(200, 40); //buat image $white = ImageColorAllocate($im, 0,0, 0); $black = ImageColorAllocate($im, 120, 200, 68); srand((double)microtime()*1000000); $string = rand(1,10); //Angka Pertama $string2=rand(1,10); //Angka Kedua $string3="$string + $string2"; $verification = $string3; $nilaisembunyi=$string+$string2; ImageFill($im, 0, 0, $black); ImageString($im, 4, 70, 10, $verification, $white); Imagejpeg($im, "captcha.png"); ImageDestroy($im); print "<form action='action.php' method='post'>"; print "Coba jawab kalo lo manusia beneran:<br>"; print "<input type='hidden' value='$nilaisembunyi' name='sembunyicapca'>"; print "<input type='text' name='angkanya' size='20'><br>"; print "<img src='captcha.png' border='0'><br><br>"; print "<input type='submit' name='submit' value='Kirim'></form>"; ?>
  • 26.
    Nah jadinya kayakgini... Intinya source diatas adalah mencocokkan text “angkanya” yaitu tempat menginput jawaban dengan sembunyicapca yaitu jawaban yang tersembunyi. Wuih gua dah merasa gua adalah Programmer paling hebat sepanjang sejarah... Nah pas gua baca salah satu Artikel di Ilmuhacking.com yang mengulas tentang bahaya penggunaan Hidden Value pada Captcha print "<input type='hidden' value='$nilaisembunyi' name='sembunyicapca'>"; if($angkanya==$sembunyicapca) Walah parah banget dah... Coba kalian download addons Firefox Web Developer... (Udah ada di Source Code)... Penggunaannya tinggal geser aja Addonsnya ke Browser, otomatis langsung keinstall. Klik yang Forms → Display Form Details. Liat hasilnya... Parah, keliatan tuh jawabannya 12... Komputer pasti jawab dengan mudah... Wokeh langsung aja praktek yah, saya gak tau apakah captcha yang saya buat dah memenuhi kriteria yang aman tapi disini saya buat sesimple dan seasik mungkin (hehehehe...) biar gak ribet. Yang penting tergantung pengembangan dari kalian aja... Kelebihannya apa yah? Paling cuman random background dan disini saya mencocokkan dengan Session bukan dengan hidden field seperti yang saya lakukan diatas... Mungkin ada yang belom tau session neh? Waduh, Googling dulu deh Bro... Coz saya juga lagi belajar, ini aja maksa... Wakakakakakak... Tapi gak sulit kok... Pertama kita akan membuat file php yang berguna untuk melakukan random image... Buat project baru PHP dengan nama RandomImage.php dan paste code berikut...
  • 27.
    <?php // Start session session_start(); //Karakter alpha numerik untuk kode $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; // Men-generate 5 karakter kode verifikasi // secara random, dengan str_shuffle() $rand = substr(str_shuffle($str), 0, 5); // Random background images, min=1 dan max=3 $no = rand(1, 3); $image = imagecreatefromjpeg("./img/bg$no.jpg"); $font = 5; $black = imagecolorallocate ($image, 0, 0, 0); $y = (imagesy($image)-imagefontheight($font)) / 2; // Menulis kode verifikasi di background imagestring ($image, $font, 8, $y, $rand, $black); // Hash hasil random, dan simpan di session $_SESSION['Cruz3N'] = md5($rand); header('Content-type: image/jpeg'); imagejpeg($image); imagedestroy($image); ?> Kemudian kalian buka form_tamu.php dan edit untuk menambahkan form untuk pengisian captcha dengan nama txtCapca... Tambahkan Row dibawah txtPesan sehingga menjadi kayak gini.
  • 28.
    Lalu kemudian padakotak dibawah “Pesan” tambahkan img src nah jadinya kayak gini... Nah pada code ini <tr> <td>&nbsp;</td> <td><input name="txtCapca" type="text" id="txtCapca"></td> Ganti &nbsp;-nya dengan <img src="RandomImage.php" border=1> Jadinya <tr> <td><img src="RandomImage.php" border=1></td> <td><input name="txtCapca" type="text" id="txtCapca"></td> Oh iya lupa, tadi kan pada script RandomImage.php ada yang kayak gini // Random background images, min=1 dan max=3 $no = rand(1, 3); $image = imagecreatefromjpeg("./img/bg$no.jpg"); Nah kita harus menyiapkan 3 gambar JPG dan masukkan di dalam folder img nah gua udah siapin neh... Tuh dia gambarnya... Kalian bisa edit atau gambar sedikit... Nah tahap terakhir buka dan edit input_bukutamu.php Dibawah include "koneksi.php"; tambahkan session_start(); Untuk memulai session...
  • 29.
    Dibawah $valid_mail ="^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+.)*([a-z0-9-]+)(.[a-z]{2,3}))$"; tambahkan... $txtCapca = $_POST['txtCapca']; Itu txtCapca yang kita buat pada form_tamu.php Lalu dibawah else if(strlen($txtPesan)<1) { echo "Pesan Masih Kosong"; } Tambahkan else if(md5($txtCapca) <> $_SESSION['Cruz3N']) { echo "Capca Salah"; } Gambarnya Jadi apabila txtCapca dan session bernama Cruz3N tidak sama maka Capca Salah... Udah deh dan langsung cobain aja... Nih foldernya jadi kayak gini... folder img tempat untuk background capca, smiles tempat smiles, dan 6 file php yang tadi dari awal telah kita buat serta 1 file js untuk Smile Otomatis.
  • 30.
    PAGING Tau paging gakneh? Coba perhatiin gambar dibawah ini... Gak ada yang aneh yah? Nah coba kalo tuh komentar ada 100, 200 pokoknya banyak banget... Gak kebayangkan kebawahnya panjang banget... Paging juga dikenal dengan sebutan pagination (paginate), previous-next, tampilan per halaman, page navigator, halaman 1..2..3, dst. Pokoknya intinya suatu tehnik untuk membatasi data yang akan ditampilkan dalam suatu halaman web. Biasanya paging digunakan untuk menampilkan data yang banyak dan hampir di setiap aplikasi web paging selalu ada. Langsung aja... Oke langsung aja, gini Bro biar gak ribet kita buka file tampil.php dan ganti semua codenya dengan code berikut... <table width="565" border="0" cellspacing="1" cellpadding="2"> <tr> <td width="75">Nama</td> <td width="154">Email</td> <td width="255">Pesan</td> <?php include "koneksi.php"; $batas=5; $halaman=$_GET['halaman']; if(empty($halaman)) { $posisi=0;
  • 31.
    $halaman=1; } else { $posisi = ($halaman-1) * $batas; } $tampil="select * from tamu ORDER BY no_tamu DESC limit $posisi,$batas"; $hasil=mysql_query($tampil); while ($data=mysql_fetch_array($hasil)){ echo "<table width='565' border='0' cellspacing='1' cellpadding='2'> <tr> <td width='75'>$data[nama]</td> <td width='154'>$data[email]</td> <td width='255'>$data[pesan]</td> </tr>"; } echo "</table><br>"; $file="form_tamu.php"; $tampil2="select * from tamu"; $hasil2=mysql_query($tampil2); $jmldata=mysql_num_rows($hasil2); $jmlhalaman=ceil($jmldata/$batas); //link ke halaman sebelumnya (previous) if($halaman > 1) { $previous=$halaman-1; echo "<A HREF=$file?halaman=1><< First</A> | <A HREF=$file?halaman=$previous>< Previous</A> | "; } else { echo "<< First | < Previous | "; } $angka=($halaman > 3 ? " ... " : " "); for($i=$halaman-2;$i<$halaman;$i++) { if ($i < 1) continue; $angka .= "<a href=$file?halaman=$i>$i</A> "; } $angka .= " <b>$halaman</b> "; for($i=$halaman+1;$i<($halaman+3);$i++) { if ($i > $jmlhalaman) break; $angka .= "<a href=$file?halaman=$i>$i</A> "; } $angka .= ($halaman+2<$jmlhalaman ? " ... <a href=$file?halaman=$jmlhalaman>$jmlhalaman</A> " : " ");
  • 32.
    echo "$angka"; //link kehalamanberikutnya (Next) if($halaman < $jmlhalaman) { $next=$halaman+1; echo " | <A HREF=$file?halaman=$next>Next ></A> | <A HREF=$file?halaman=$jmlhalaman>Last >></A> "; } else { echo " | Next > | Last >>"; } echo "<p>Total Komentar : <b>$jmldata</b> orang</p>"; ?> Lah kok diganti, biar gampang aja jelasinnya Bro. Soalnya kalo sisip-sisipin kadang ribet dan terlalu banyak gambar Nah sekarang liat hasilnya Bro...
  • 33.
    BIAR TAMBAH RAPIH Tambahanaja, jadi pada setiap komentar kita bisa memberi garis pembatasnya... Langsung aja, pertama buka tampil.php dan tambahkan pada code while ($data=mysql_fetch_array($hasil)){ echo "<table width='565' border='0' cellspacing='1' cellpadding='2'> <tr> <td width='75'>$data[nama]</td> <td width='154'>$data[email]</td> <td width='255'>$data[pesan]</td> </tr>"; Tepat dibawahnya $garis=nl2br($data[txtPesan]); echo "$isian <hr color=#1E00FF noshade=noshade />"; Jadi lengkapnya while ($data=mysql_fetch_array($hasil)){ echo "<table width='565' border='0' cellspacing='1' cellpadding='2'> <tr> <td width='75'>$data[nama]</td> <td width='154'>$data[email]</td> <td width='255'>$data[pesan]</td> </tr>"; $garis=nl2br($data[txtPesan]); echo "$isian <hr color=#1E00FF noshade=noshade />"; Nah maka kalian akan mendapatkan hasil seperti berikut... hr color=#1E00FF bisa kalian rubah sesuai keinginan...
  • 34.
    REDIRECT URL Wew... Ketikakita akan membuka bukutamu kita maka akan tampil seperti ini... Keliatan gak asik banget... Solusinya adalah salah satu dari file diatas diberi nama dengan index.php yang tidak lain tidak bukan adalah form_tamu.php... Solusi lain adalah menyiapkan file index.php baru yang berisi code sebagai berikut... <?php header('location:form_tamu.php'); ?> Intinya browser akan membaca terlebih dahulu file index.php yang kemudian berisi redirect menuju form_tamu.php Tapi permasalahan belum selesai... Ketika saya mencoba untuk mengganti URLnya... http://localhost/shoutbox/bukutamu/Bukutamu%20+%20Smile%20Otomatis%20+%20Captcha%20+ %20Paging/form_tamu.php Menjadi http://localhost/shoutbox/bukutamu/Bukutamu%20+%20Smile%20Otomatis%20+%20Captcha%20+ %20Paging/smiles/ Saya dapat melakukan Browsing terhadap smiles-smiles yang ada di dalam folder smiles... Apakah kita harus menaruh file index.php di dalamnya? <?php header('location:../form_tamu.php'); ?> Bisa, gak ada masalah... Permasalahannya apabila kita memiliki banyak folder dan apakah harus membuat index.php sesuai dengan jumlah folder? Solusi yang paling gampang adalah menggunakan .htaccess (Kalian bisa Googling :p). isinya Options All -Indexes Jadi secara otomatis akan muncul
  • 35.
    Secara otomatis ketikakita ingin melakukan browsing ke dalam folder... REDIRECT BROWSER Sebenernya code yang digunakan cukup sederhana... Dengan membaca browser apa yang digunakan dengan memakai fungsi $_SERVER['HTTP_USER_AGENT Dan akan langsung meredirect ke file tujuan... Codenya sebagai berikut, buat project PHP baru dan beri nama redirect.php <?php if (eregi('MSIE',$_SERVER['HTTP_USER_AGENT'])) { echo "You are using Internet Explorer.<br />"; header('location:IE.html'); } elseif(eregi('Firefox',$_SERVER['HTTP_USER_AGENT'])) { echo "You Are Using Mozila Firefox.</br>"; header('location:FF.html'); } elseif(eregi( 'Opera',$_SERVER['HTTP_USER_AGENT'])) { echo "You Are Using Opera"; header('location:Opera.html'); } else { Echo "Your Browser Is ".$_SERVER['HTTP_USER_AGENT']; } ?> Misalkan kita ingin pengunjung hanya bisa melihat web kita dengan menggunakan Firefox lakukan seperti berikut... Buat 1 file html baru yang apabila pengunjung tidak menggunakan Firefox akan teridirect kesitu... Terserah isinya mau apa saja... SESSION Walah, sebenernya saya juga belum mahir neh dalam penggunaan Session dan Cookies... Moga-moga bisa saya jelasin dengan sesederhana mungkin biar gak bingung... Session dalam kaitannya dengan waktu merupakan waktu seorang user mengunjungi suatu situs dan akan berakhir ketika user menutup situs tersebut. Contoh penggunaan Session Buat project PHP index.php
  • 36.
    <form action="login.php" method="POST"> Password:<input type="password" name="passnya"><br> <input type="submit"> </form> login.php <?php session_start(); if($_POST[passnya] == "12345") { $_SESSION['liatdunk'] = "yes"; header("Location: rahasia.php"); } else { die("Salah Passwordnya"); } ?> Logout.php <?php session_start(); session_destroy(); echo "Sekarang Anda Telah L0gOut"; echo "<br><a href='index.php'>L0gin</a>"; ?> rahasia.php <?php session_start(); if($_SESSION['liatdunk'] == "yes") { echo "Ini Pesan Rahasia Untuk Admin :p"; } else { die("Harap Login Terlebih Dahulu"); } echo "<br><a href='logout.php'>LogOut</a>"; ?> Disini saya belum menggunakan database... Langsung aja, ketika saya memasukkan “12345” sebagai password maka akan tercipta sebuah session “liatdunk”... Dan pada rahasia.php disitu tertulis kalau sessionnya = “liatdunk” maka yang akan tampil adalah pesan untuk admin apabila tidak ada session “liatdunk” maka harus login terlebih dahulu... Fungsi session_destroy pada logout.php digunakan untuk mengakhiri session. Session Dengan Menggunakan Database Pertama-tama yang harus kita siapkan adalah membuat databasenya terlebih dahulu yaitu userdb Setelah itu buat tabel “tbl_user” dan number of fieldsnya 3.
  • 37.
    Field Type Length/Values Extra id INT 3 auto_increment Primary Key username VARCHAR 50 password VARCHAR 50 Lalu klik SAVE... Tahap selanjutnya adalah membuat Form untuk melakukan Register.. (form_login.php). Kalian bisa buat seadanya kok Yang penting ada textfield untuk Username, Password dan Ulangi Password... Jangan lupa Properties masing-masing TextField Properties TextField Type Username txtnama Single Line Password txtpassword Password Ulangi Password txtu_password Password Nih codenya “form_daftar.php” <style type="text/css"> <!-- .style1 {font-size: 24px} --> </style> <form name="form1" method="post" action="input_daftar.php"> <table width="400" border="0"> <tr> <td colspan="2"><span class="style1">Register</span></td> </tr> <tr> <td>Username : </td> <td><input name="txtnama" type="text" id="txtnama"></td> </tr> <tr> <td>Password : </td> <td><input name="txtpassword" type="password" id="txtpassword"></td> </tr> <tr> <td >Ulangi Password : </td> <td><input name="txtc_password" type="password" id="txtc_password"></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr>
  • 38.
    <td colspan="2"><input type="submit"name="Submit" value="Register"></td> </tr> </table> </form> input_daftar.php <?php include "config.php"; $txtnama = trim(strip_tags(mysql_real_escape_string($_POST['txtnama']))); $txtpassword = trim(strip_tags(mysql_real_escape_string($_POST['txtpassword']))); $txtu_password = trim(strip_tags(mysql_real_escape_string($_POST['txtu_password']))); $passmd5 = md5($txtpassword); //Mengenkripsi $txtpassword if(strlen($txtnama)<1) { echo "Nama Masih Kosong"; } else if(strlen($txtpassword)<1) { echo "Password Masih Kosong"; } else if(strlen($txtu_password)<1) { echo "Password Masih Kosong"; } else if($txtpassword != $txtu_password) { print "<script>alert('Konfirmasi password harus sama dengan password !'); javascript:history.go(-1);</script>"; exit; } else { $cek_data="Select * from tbl_user where username='$txtnama'"; // Melakukan Pemeriksaan pada Username di tabel tbl_user $hasil=mysql_query($cek_data); $hasil_cek = mysql_num_rows($hasil); if ($hasil_cek==0){ //Jika Data Tidak Ditemukan Maka $sqlSimpan = "INSERT INTO tbl_user(username,password) values('$txtnama', '$passmd5')"; mysql_query($sqlSimpan, $koneksi) or die ("Gagal Perintah SQL".mysql_error()); echo "PENYIMPANAN BERHASIL"; } else { echo "Data / Username Sudah Ada"; } } ?> Code diatas adalah action dari form_register. Mungkin bagian yang baru kita lihat adalah else if($txtpassword != $txtu_password) { print "<script>alert('Konfirmasi password harus sama dengan password !'); javascript:history.go(-1);</script>";
  • 39.
    exit; } Nah code diatasberguna apabila $txtpassword dan $txtu_password tidak sama maka akan muncul pesan kesalahan. Sedangkan baris berikut else { $cek_data="Select * from tbl_user where username='$txtnama'"; // Melakukan Pemeriksaan pada Username di tabel tbl_user $hasil=mysql_query($cek_data); $hasil_cek = mysql_num_rows($hasil); if ($hasil_cek==0){ //Jika Data Tidak Ditemukan Maka $sqlSimpan = "INSERT INTO tbl_user(username,password) values('$txtnama', '$passmd5')"; mysql_query($sqlSimpan, $koneksi) or die ("Gagal Perintah SQL".mysql_error()); echo "PENYIMPANAN BERHASIL"; } else { echo "Data / Username Sudah Ada"; } } Pertama kali yang dilakukan adalah melakukan perintah SELECT yaitu mencari apakah di dalam tbl_user ada $txtnama (yaitu username yang diinputkan oleh user) dan setelah itu dengan menggunakan mysql_num_rows yang digunakan untuk memperoleh informasi jumlah record atau baris data dari suatu query. Apabila data tidak ditemukan, (ditandai dengan “==” yaitu dibaca sama dengan, jika “!=” berarti tidak sama dengan) maka melakukan perintah INSERT yaitu memasukkan semua informasi ke dalam database. Jika ada maka Data / Username sudah ada. Hal ini berguna untuk mencegah terjadinya data yang sama. Setelah itu kita akan membuat form login... form_login.php <html><head><title>Halaman Login ... </title></head> <body> <table border=1 align=center> <form method=post action=cek.php> <tr> <td>Username</td> <td><input type=text name=username></tr> <tr> <td>Password</td> <td><input type=password name=password></tr> <tr><td></td><td><input type=submit name=submit value=Submit></tr> <tr>
  • 40.
    <td></td> <td><a href="form_daftar.php">Register?</a> </tr> </form> </table> </body> </html> cek.php <?php session_start();// Memulai Session include "config.php" ; // Memanggil config.php untuk konfigurasi database $username = $_POST['username']; $password = $_POST['password']; $passwordhash = md5($password); // Mengenkripsikannya untuk dicocokan dengan database $sql = "select username, password from tbl_user where username = '$username' and password = '$passwordhash'"; $sqlrun = mysql_query($sql); $cek = mysql_num_rows($sqlrun); if ($cek >= 1 ) { $_SESSION['username'] = $username; header("location: main.php"); } else header("location: form_login.php"); ?> Cek.php adalah action dari form_login.php. Perintah $passwordhash = md5($password); berguna untuk melakukan enkripsi data. Nah kalau mau juga semua data yang ada di database termasuk username, email, pesan, dll bisa dienkripsi. Biar lebih aman (mungkin ). Nah apabila setelah dilakukan pengecekkan password ditemukan maka akan diberikan session['username'] dan setelah itu akan diredirect menuju main.php. main.php <?php session_start(); // Memulai Session if (ISSET($_SESSION['username'])) { echo "Selamat Datang<br>"; echo $_SESSION['username']; echo "<br><a href=logout.php?logout=yes>logout</a>"; } else header("location: form_login.php"); ?> Nah untuk main.php akan dilakukan pengecekan session. Jika terdapat session['username'] maka akan ditampilkan pesan selamat datang. Apabila tidak ada maka akan diredirect menuju form_login.php. config.php <?php // Jangan Lupa Sesuaikan Dengan Settingan Komputer Kita $my['host'] = "localhost"; $my['user'] = "root"; $my['pass'] = "cruzenaldo"; $my['dbs'] = "userdb";
  • 41.
    $koneksi = mysql_connect($my['host'], $my['user'], $my['pass']); if (! $koneksi) { echo "Gagal Koneksi Bro...."; mysql_error(); } mysql_select_db($my['dbs']) or die ("Database Gak Ada".mysql_error()); ?> Nah config.php juga penting neh, jangan lupa dibuat untuk melakukan koneksi dengan database. logout.php <?php session_start(); if ($_REQUEST['logout'] == "yes") { if(ISSET($_SESSION['username'])) { UNSET($_SESSION['username']); } } header("location: form_login.php"); session_destroy(); ?> Di dalam main.php ada perintah seperti ini echo "<br><a href=logout.php?logout=yes>logout</a>"; Nah dalam logout.php apabila $_REQUEST['logout'] == “yes” maka akan dilakukan penghapusan session. Selesai dan kalian bisa mencobanya. Setelah saya coba-coba ada satu hal yang mengganjal saya. Saya pernah membuat web dengan menggunakan metode diatas dan apa yang terjadi... http://localhost/webgua/catchmeifyoucanasshole/modul/mod_agenda/agenda.php Ini hanya sebagai contoh, apabila saya mengetahui isi direktori di dalam folder admin yaitu “ catchmeifyoucanasshole/modul/mod_agenda/agenda.php” maka apa yang terjadi?
  • 42.
    Walaupun memang sayatidak dapat melakukan pengisian data cuman gimana gitu Saya hanya tidak ingin apabila orang lain melakukannya dan mungkin melikat data-data penting... Terlalu paranoid neh... Contoh sederhana aja yah... Misalkan kita membuat jumlah_user.php yang berguna untuk menghitung jumlah user pada tbl_user. jumlah_user.php <?php include "config.php"; $sqljumlah = mysql_query("SELECT * FROM tbl_user", $koneksi); $total = mysql_num_rows($sqljumlah); echo "<br>Jumlah Anggota : <b>$total</b>"; ?> Nah ubah sedikit main.php <?php session_start(); // Memulai Session if (ISSET($_SESSION['username'])) { echo "Selamat Datang<br>"; echo $_SESSION['username']; include "jumlah.php"; echo "<br><a href=logout.php?logout=yes>logout</a>"; } else header("location: form_login.php"); ?> Maka setelah kita melakukan login maka kita akan mendapatkan tampilan seperti berikut... Nah oke, aman-aman aja... Nah coba kita ketik di URL http://localhost/login%20asik/New%20Folder/jumlah.php Dan hasilnya adalah Sementara kita tidak ingin orang lain melihatnya... Yang kita lakukan adalah membuat file php baru yang bernama cek_session.php <?php session_start(); if(! (session_is_registered(username))) { echo "<div align=center><b> PERHATIAN ..!!! </b><br>"; echo "UNTUK MELIHAT JUMLAH USER KAMU HARUS LOGIN DULU :p</div>"; include "form_login.php";
  • 43.
    exit; } ?> Nah code diatasdigunakan untuk melakukan pengecekan session(username)... Nah pada jumlah_user.php tambahkan include "cek.session.php"; <?php include "config.php"; include "cek.session.php"; $sqljumlah = mysql_query("SELECT * FROM tbl_user", $koneksi); $total = mysql_num_rows($sqljumlah); echo "<br>Jumlah Anggota : <b>$total</b>"; ?> Maka setelah kita belum melakukan login terlebih dahulu dan mengetikkan URL tempat jumlah_user.php berada maka akan muncul
  • 44.
    TAMBAHAN IMPORT DATABASE Nahbagi yang belum tau... Saya menyiapkan file bukutamu.sql di dalam folder db. Nah sekarang buka Browser dan menuju.. http://localhost/phpmyadmin/ Tulis databasenya dulu yaitu bukutamu dan create Klik tab import... Browse bukutamu.sql Dan Go.... Selesai sudah...
  • 45.
    Oke sampe disinidulu neh saya kasih tutorialnya... Kenapa dah selesai, tenang aja... Kalo TUHAN berkenan bakalan ada V.2,V.3 dan seterusnya... Buset kalo saya selesain sampe jadi website pegel dah bakalan jadi basi nanti... Pokoknya kembangin dah.... Saya tau kalian lebih hebat dari saya.... Hehehehehehe.... Saya gak saranin apa yang saya jabarkan disini kalian tiru dan menjadi patokan... Saya hanya mencoba untuk menjadikan PHP menjadi salah satu bahasa pemrograman yang asik dan keren banget... PHP sexy banget dah Salam aja buat semuanya... Thanks to: - My JESUS, Without YOU Im Nothing... - My Family Di Dunia Nyata... - My Family Di Dunia Maya, Jasakom, devilzc0de, Echo, Xcode, AntiJasakom, Flyninja, Dxline... - witha a.k.a Chrn0... Yang selalu menemani hari2 gua... Hehehehehehe.... - And My Brother Ari yang ada disamping gua... Best Regard Cruz3N cruzenaldo[dot]blogspot[dot]com cruzenaldo[at]gmail[dot]com cruzenaldo[at]yahoo[dot]co[dot]id Semuanya Boleh Di Copy, Di Perbanyak, Di Rubah Terserah Kalian Dah... Asal Orang INDONESIA MALINGSIAL DILARANG KERAS