Académique Documents
Professionnel Documents
Culture Documents
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.
C:\wamp\www
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.
Lalu buat table dan atur design struktur table seperti gambar dibawah ini...
Tambahkan 3 TextField dan 1 Button. Nih dia gambarnya...
Untuk Email:
Untuk Pesan:
Lalu simpan dengan nama “form_tamu.php” dan simpan di dalam folder bukutamu yang tadi telah kita
siapkan...
<html>
<head>
<body>
C:\wamp\www\bukutamu
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
mysql_select_db($my['dbs'])
or die ("Database Gak Ada".mysql_error());
?>
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:\wamp\apps\phpmyadmin2.11.6
$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
// 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());
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
include "koneksi.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'];
$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}))$";
else if(strlen($txtEmail)<1)
{
echo "Email Masih Kosong";
}
Dan ganti menjadi
Oke, untuk melakukan validasi input yang lebih spesifik, kita bisa menggunakan fungsi ereg() atau eregi() seperti
yang gua gunakan diatas.
Lengkapnya jadi kayak gini...
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...
$txtNama = $_POST['txtNama'];
$txtEmail = $_POST['txtEmail'];
$txtPesan = $_POST['txtPesan'];
$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.
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']);
$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.
Walah berantakan juga, ini tergantung dari kalian aja designnya gimana (Ngeles Mode:ON)... Atau gambarnya
kegedean yah?
$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 ( ' )
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....
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...
$txtNama = trim(strip_tags($_POST['txtNama']));
$txtEmail = trim(strip_tags($_POST['txtEmail']));
$txtPesan = trim(htmlentities($_POST['txtPesan']));
$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
function appendTextToComment(text) {
var commentArea = document.getElementById('txtPesan');
commentArea.value = commentArea.value + text;
}
smile.push('\\:grin\\:');
smile.push('\\:smile\\:');
smile.push('\\:XD\\:');
smile.push('\\:x_x\\:');
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">
Gambarnya
Terakhir sisipkan script berikut dibawah <head> untuk mencari smiley.js yang tadi telah kita buat...
Jangan lupa untuk menyesuaikan smile dan shortcutnya pada ketiga file diatas
input_bukutamu.php,form_tamu.php dan smiley.js
Hasilnya...
Hasilnya...
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);
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.
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
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.
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();
$font = 5;
$black = imagecolorallocate ($image, 0, 0, 0);
$y = (imagesy($image)-imagefontheight($font)) / 2;
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...
<tr>
<td> </td>
<td><input name="txtCapca" type="text" id="txtCapca"></td>
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
Nah kita harus menyiapkan 3 gambar JPG dan masukkan di dalam folder img nah gua udah siapin neh...
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'];
else if(strlen($txtPesan)<1)
{
echo "Pesan Masih Kosong";
}
Tambahkan
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...
$batas=5;
$halaman=$_GET['halaman'];
if(empty($halaman))
{
$posisi=0;
$halaman=1;
}
else
{
$posisi = ($halaman-1) * $batas;
}
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";
$jmlhalaman=ceil($jmldata/$batas);
?>
Lah kok diganti, biar gampang aja jelasinnya Bro. Soalnya kalo sisip-sisipin kadang ribet dan terlalu banyak
gambar
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
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.
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...
<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());
Code diatas adalah action dari form_register. Mungkin bagian yang baru kita lihat adalah
Nah code diatas berguna apabila $txtpassword dan $txtu_password tidak sama maka akan muncul pesan
kesalahan.
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());
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.
form_login.php
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
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();
?>
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>";
?>
<?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...
http://localhost/login%20asik/New%20Folder/jumlah.php
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;
}
?>
<?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/
Browse bukutamu.sql
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
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