menu

Jumat, 24 Juni 2011

Penggunaan POST dan GET


Dalam mengembangkan sebuah aplikasi web, seorang developer dihadapkan kepada beberapa opsi dalam melakukan update, insert, dan delete record database. Dan itu semua diawali pada penggunaan form dengan berbagai action dan method. Begitupun halnya pada implementasi ketika user memasukkan data ke dalam form inputan. Yang kemudian dilanjutkan kepada proses pengolahan dimana setelahnya hasil dari olahan tersebut dimasukkan kedalam database. Nah disinilah pemilihan fungsi method dibutuhkan. Method ini terbagi menjadi 2, yakni POST dan GET, masing masing memiliki perbedaan yang tipis.  Sederhananya method ini bekerja ketika si user menekan tombol submit dengan action yang telah disetting sebelumnya. ( kalo pusing baca lagi dari awal. :D~~ ) Dalam implementasi contoh kasusnya seperti ini, buat satu file html bernama index.html:
<html>
<head><title>Isi Buku tamu</title></head>
<body>
<form action=get.php method=get>
<table border=0>
<tr><td>Nama : </td><td><input type=text></td></tr>
<tr><td>Email :</td><td><input type=text></td></tr>
<tr><td>Homepage : </td><td><input></td></tr>
<tr><td>Isi :</td><td><textarea name=isi cols=25 rows=6></textarea></td></tr>
<tr><td></td><td><input type=submit value=Kirim></td></tr>
</table>
</form>
</body>
</html>
Dan get.php :
<?php
echo $_GET['nama'].”<br>”.$_GET['email'].”<br>”.$_GET['isi']
?>
Perhatikan url pada browser internet anda, terlihat url yang super panjang, ini terjadi akibat dari variable yang dihasilkan oleh form inputan kembali ditampilkan beserta isinya. Hal ini jelas memiliki dampak kelemahan karena umumnya browser hanya dapat memperlihatkan dan mengambil nilai sebanyak 256 karakter dari address bar. Dan tentunya hal ini akan berpengaruh kepada data yang akan diolah dan di simpan kedalam database nantinya.
Ditampilkannya hasil dari form inputan berguna sekali jika diimplementasikan pada pembuatan fasilitas searching. Namun hal ini menjadi kendala jika method get ini digunakan dalam menginput data dengan text yang panjang. Dari sinilah permasalahan seperti ini ditangani oleh method post. Tapi sebelumnya, buat sebuah file bernama index2.html :
<html>
<head><title>Isi Buku tamu</title></head>
<body>
<form action=post.php method=post>
<table border=0>
<tr><td>Nama : </td><td><input type=text></td></tr>
<tr><td>Email :</td><td><input type=text></td></tr>
<tr><td>Homepage : </td><td><input></td></tr>
<tr><td>Isi :</td><td><textarea name=isi cols=25 rows=6></textarea></td></tr>
<tr><td></td><td><input type=submit value=Kirim></td></tr>
</table>
</form>
</body>
</html>
Dan satu lagi halaman post.php berisi :
<?php
echo $_POST['nama'].”<br>”.$_POST['email'].”<br>”.$_POST['homepage'].”<br>”.$_POST['isi'];
?>
Jika user memasukkan data melalui form input yang ada di index2.html, maka hasil yang dikirimkan dengan method post tidak akan ditampilkan di address bar, namun tetap tersimpan dalam memory, untuk mengambilnya cukup dengan menggunakan variable $_POST[‘variable’], hal ini tentunya dapat mencegah url yang terlihat kotor, berantakan, dan penuh dengan noda-noda. :D. Yups, sepertinya cukup jelas.
Sekian dan terima kasih. :D~

PHP dan Class Part3


PHP dan Class Part3 web desain grafisKalau pada artikel sebelumnya saya telah membahas class dan pewarisan (Inheritance), maka pada artikel yang ketiga ini saya akan membahas tentang Overriding. Apa itu Overriding? Terkadang dalam membuat program, kita bingung memberikan nama variabel.Pada pemrograman prosedural, kita tidak dapat menggunakan variabel yang sama berulang-ulang. Tetapi pada Konsep OOP, kita dapat menggunakan variabel yang sama secara berulang-ulang tetapi operasi yang dilakukan oleh metode tersebut berbeda. Inilah yang dinamakan Overriding.
Untuk lebih jelasnya, mari kita lihat contoh sederhana dari konsep overriding di bawah ini :
  class induk {
var $kata = “Cetak induk”;
function kata () {
print $this->kata;
}
}
class anak extends induk {
var $kata = “Cetak Anak”;
function kata () {
print $this->kata;
}
}
$cetak = new anak ();
$cetak->kata();
?>
Hasilnya : cetak anak.
Mengapa yang tertampil di layar adalah kata “cetak anak” padahal seharusnya pewarisan kelas induk mengharuskan “cetak induk” ? Karena pada class anak terjadi overriding pada method kata. Sehingga pada saat dijalankan, yang tertampil di layar bukanlah cetak induk tetapi cetak anak..Yup…Sekian dulu penjelasan dari saya.Semoga teman-teman sekalian dapat paham dan mengerti. Jika ada yang ingin ditanyakan silahkan hubungi saya di :

Passing variable menggunakan Session


                         
banyak cara untuk melakukan passing variable. Sebentar sebentar, apa itu passing variable ? Passing variable itu sendiri memiliki arti melewatkan suatu variable. Untuk kali ini penulis hanya menjelaskan bagaimana melewatkan variable yang berbeda halaman.
Melewatkan variable yang berbeda halaman seperti ini biasanya diimplementasikan dalam sekuritas sebuah halaman. Boleh atau tidaknya suatu halaman diakses tergantung dari belum atau sudahnya suatu variable diregisterkan. Contoh nyatanya yaitu ketika seorang admin melakukan login dengan username dan password yang benar, maka akan diregisterkan sebuah variable yang nantinya digunakan sebagai key. Pengaksesan halaman lain memerlukan key yang dihasilkan dari login tersebut. Apabila didapatkan situasi ketika user belum login, maka halaman yang memerlukan variable yang diregisterkan ( dalam hal ini key ) akan melakukan redirect ke halaman lain yang memerintahkan user untuk melakukan kembali proses login dengan benar. Resminya hal seperti ini dapat dilakukan dengan 2 metode. Pertama menggunakan session dan yang kedua menggunakan cookies. Masing-masing memiliki kelemahan dan juga kelebihannya. Namun untuk artikel kali ini penulis hanya menjelaskan yang session saja.
Session merupakan sebuah metode yang dapat melewatkan suatu variable meskipun berbeda halaman. Session yang diregisterkan akan tetap ada sampai si user menutup browsernya. Sebagai contoh sederhananya, buat satu halaman dengan nama session.php kemudian registerkan sebuah variable :
session_start();
$_SESSION['lewat'] = 1;
?>
Kemudian buat sebuah file lagi dengan nama anotherpage.php :
session_start();
echo $_SESSION['lewat'] ;
?>
Anda buka halaman session.php terlebih dahulu, selanjutnya buka halaman anotherpage.php. Hasilnya :
1
Ini terjadi karena dalam file session.php telah diregisterkan sebuah variable session dengan nama lewat. Seperti pada baris ini
$_SESSION['lewat'] = 1;
Variable session ini berlaku untuk semua halaman yang ada karena sifatnya yang global.
Untuk men-set sebuah variable session dapat menggunakan cara yang lain :
$lewat = 1 ;
session_register(‘lewat’);
untuk mengakses session yang telah diregister tersebut cukup dengan :
echo $_SESSION[’lewat’];
Nah sekarang tutup browser anda, lalu buka kembali halaman anotherpage.php. Apa yang terjadi ? Betul, :D tidak ada yang ditampilkan karena secara otomatis sebuah session akan dibuang ketika browser diclose.
Untuk membuang atau mendelete sebuah session, cukup dengan menggunakan fungsi session_unset(’namasession’);
Contohnya :
session_unset($_SESSION['lewat']);
Untuk membuang semua session yang ada cukup dengan menggunakan fungsi session_destroy(); ini adalah fungsi kebalikan dari session_start();
Contoh implementasi yang lebih kompleks dari penggunaan session ini, penulis akan membuat sebuah script login, yang nantinya jika si user melakukan login dengan benar, maka dibolehkan untuk mengakses halaman yang berbeda sekalipun.
Namun persiapkan terlebih dahulu script-script yang dibutuhkan.
File login.html :
Halaman Login…


username :
password :
 
Kemudian file cek.php :
session_start();
if(!empty($_POST['username']) && !empty($_POST['password']))
{
        if ($_POST['username'] == “admin” && $_POST['password'] == “admin”)
            {
            $_SESSION['userlogin'] = 1 ;
            echo “Selamat Datang Admin”;
            echo “
Edit Database … “;

            echo “
Logout … “;

            }
        else
            {
            header(“location: login.html”);
            }
}
?>
Selanjutnya file edit.php, file ini mencontohkan sebuah halaman yang dapat diakses ketika user telah login dengan benar, dan sebuah session yang menjadi kunci telah diregister dan diterima :

session_start();
if (ISSET($_SESSION['userlogin']))
{
echo “Silahkan mengedit database … “;
echo “
Logout … “;

}
else
{
echo(“Anda tidak berhak untuk mengakses halaman ini … “);
}
?>
Yang terakhir adalah file logout.php :

session_start();
session_destroy();
header(“location: login.html”);
?>
Username dan password yang berasal dari halaman login.html akan diperiksa terlebih dahulu oleh file cek.php, terlihat di sini
Jika username dan passwordnya diisi oleh user …
if(!empty($_POST['username']) && !empty($_POST['password']))
{
Dan jika username dan passwordnya cocok … 
        if ($_POST['username'] == “admin” && $_POST['password'] == “admin”)
            {
Register sebuah variable session …
            $_SESSION['userlogin'] = 1 ;
            ….
Jika tidak …
        else
            {
User diperintahkan untuk melakukan login ulang …
            header(“location: login.html”);
            }
}
Kemudian dalam file edit.php dijelaskan bahwa,
halaman tersebut dapat diakses dengan syarat variable $_SESSION[’userlogin’] telah di register…
…
if (ISSET($_SESSION['userlogin']))
{
…
Yups, script ini dapat dikembangkan lebih jauh. Dan perlu dicatat, session tentunya sangat bermanfaat sekali, tidak terpatok hanya untuk sekuriti pada sebuah halaman saja, namun dalam bentuk yang lain tentunya. Ini tergantung dari kreatifitas anda dalam menggunakan session. Selamat mencoba. Selamat Mengembangkan. Dan selamat berbuka puasa pada waktunya nanti… :D~~
Script di atas dapat di download di sini

Twitter Delicious Facebook Digg Stumbleupon Favorites More