ARI JULIANTO Network www.arijulianto.com

Oleh | PHP | | Dibaca 9.896 kali | 0 komentar

Yak, dulu sempat kita pernah membahas tentang varabel di topik Menggunakan Berbagai Jenis Variabel dalam PHP, dan kali ini saya akan menjelaskan lebih jauh mengenai predefined variabel dalam PHP. Predefined, Anda tau artinya kan??? Benar telah terdefinisi terlebih dahulu, maksudnya variabel-variabel predefined ini tidak perlu kita buat nama variabelnya karena sudah disediakan oleh PHP. Dan yang perlu Anda ketahui adalah bahwasanya kebanyakan predefined variabel itu merupakan SUPERGOBAL VARIABEL. Jadi variabel predefined itu dapat Anda panggil dimanapun script berada. Apakah variabel-variabel predefined tersebut????

O iya saya kabarkan terlebih dahulu deh bahwasanya variabel-variabel predefined dalam PHP kebanyakan berupa varabel array, jadi variabel tersebut punya sub atau anak variabel, gak bisa langsung dipanggil nama variabelnya :D

$_POST

$_POST adalah sebuah metode pengiriman data pada PHP yaitu HTTP POST. Metode pengirimannya menggunakan form. Singkat kata: $_POST adalah sebuah metode atau cara mengambil nilai dari input yang dikirim oleh user melalui input FORM, baik itu jenis input text, textarea, select, radio box, checkox, dan yang lainnya. Mungkin sahabat AJN sekilas terpikir tentang bagaimana Facebook bisa menangkap teks status yang kita ketik di halaman profil atau halaman beranda fesbuk kita? atau ketika memberi komentar pada sebuah blog. Yups, berangkat dari situlah saya pribadi memahami HTTP POST, dan sekarang saya mencoba berbagi kepada sahabat AJN semuanya mengenai metode pengiriman form itu :)

Baiklah kita kembali ke topik bahasan kita, FORM. Pada bahasan HTML, disebutkan bahwa komponen input html dianjurkan untuk selalu diberi nama sebagai pengenal dari input tersebut, sebagai contoh kita membuat form seperti berikut

<form action="simpan.php" method="POST">
Nama: <input type="text" name="nama" size=20 /><br />
Email: <input type="text" name="email" size=20 /><br />
Jenis Kelamin: <input type="radio" name="gender" value="Pria" /> Pria <input type="radio" name="gender" value="Wanita" /> Wanita<br />
Status: <select name="status">
<option alue="Lajang">Lajang</option>
<option value="Menikah">Menikah</option>
<option value="Duda">Duda</option>
<option value="Janda">Janda</option>
</select><br />
<input type="submit" name="simpan" value="Simpan" /> <input
type="reset" />
</form>

Dasi source code di atas saya akan mencoba memecahnya.
- action="simpan.php" => action adalah perintah untuk tujuan ke mana form akan dilempar untuk kemudian diproses (kalo di isi action="" akan di proses ke halaman itu sendiri, karena disini diisi dengan simpan.php maka halaman yang dituju adalah halaman simpan.php)
- input-input dengan type="text" maupun radio juga select, semuanya memiliki nama dan value (kecuali input type text, tidak didefinisi berarti default nilainya kosong atau NULL)
- sebuah tombol submit dengan nama 'simpan' yang berguna untuk mengalihkan (mengirim) halaman ke halaman action untuk kemudian nantinya di proses

Telah kita ketahui bahwasanya $_POST merupakan array (seperti telah disebutkan di atas). Untuk pengambilan nilai yang dikirimmnya digunakan pola seperti berikut

format => $_POST[namaInputForm]

Artinya disini kita mempunyai 5 input elemen form yaitu nama, email, gender, status dan simpan. Jadi untuk mengambil nilai yang dimasukkan atau dipilih user pada input2 tersebut kita gunaan $_POST[nama], $_POST[email], $_POST[gender], $_POST[status]. Bagaimana apa bisa dipahami??? silakan coba dengan nama yang lain, juga jenis input form lain seperti textarea, password, dll.

$_GET

Untuk bahasan metode pengiriman form dengan $_GET ini saya tidak akan membahas terlalu detail, karena pada dasarnya sama persis dengan $_POST. Lantas apa yng mmbedakannya??? Yang membedakannya adalah nilai "method" pada tag FORM, misalnya <form action="simpan.php" method="GET">. formulanya sama saja

format => $_GET[namaInputForm]

Nah metode pengiriman dengan HTTP GET ini sedikkit spesial, hanya saja data yang diinput bisa langung dilihat oleh user. Lha, dimana??? ya, form yang dikirim dengan metode HTTP GET semuanya menjadi array dan tesimpan pada Query String. Query String adalah kumpulan variabel array global yang bisa dipanggil di halaman php script. Query string terletak pada URL halaman web dan ditandai dengan "?", misalnya "index.php?menu=blog&tahun=2012&bulan=08&file=selamat-datang-aja". Dari sampel tersebut dari belakang "?" itulah yang disebut dengan query strng. & adalah tanda pemisah antara array satu dan yang lainya, sebelah kiri tanda sama dengan ( = ) merupakan key dari array (nama input form) sedang sebelah kananya nilai dari array key (input user).

Contoh URL hasil submit form via HTTP GET:
URI: /simpan.php?nama=Ari+Julianto&email=arijulianto@programmer.net&gender=Pria&status=Lajang&simpan=Simpan
detail data penggambilannya:
$_GET[nama] => hasilnya "Ari Julianto"
$_GET[email] => hasilnya "arijulianto@programmer.net"
$_GET[gender] => hasilnya "Pria"
$_GET[status] => hasilnya "Lajang"

$_REQUEST

HTTP REQUEST adalah sebuh alternatif untuk engambil data yang dikrim dari form. $_REQUEST adalah gabungan antara $_POST dan $_GET, jadi data yang dikirim oleh form dengan metode POST ataupun GET bisa ditangkap nilainya dengan $_REQUEST. penulisannya pun tidak jauh berbeda dengan $_POST dan $_GET (karena emang sama). Jadi kalo kita melakukan input form dengan metode POST tapi url tujuan ada query stringnya atau kita tidak tau form yang dikirim itu enggunakan etode POST atau GET, maka $_REQUEST ini adalah satu-satunya jawabannya

format => $_REQUEST[namaInputForm_atau_QueryString]

$_FILES

Bahasan berkutnya adalah $_FILES. Dari namanya saja sudah bisa kita tebak bahwasanya ini pasti berhubungan dengan file, tapi apa ya??. Hemm, ini adalah sebuah cara request client dengan method HTTP Upload. Nah materi inilah gerbang dari pelajaran awal mengenai upoad file ke server. Satu hal yang harus diingat dari HTTP Upload adalah form harus menggunakan method="POST" dan ditambah atribut enctype="multipart/form-data". Adapun input filenya tentu menggunakan <INPUT type="file" name="..." /> Yuk simak contoh dibawah ini

<form action="upload.php" method="post" enctype="multipart/form-data">
Gambar: <input type="file" name="image" /> <input name="go" type="submit" value="Upload" />
</form>

Telah kita ketahui bahwasanya tidak bisa dipungkir kalau yang namanya variabel global atau predefined variabel dalam php mutlak jenisnya adalah array, maka hasil metode $_FILES ini mmiliki sub array berikut.

$_FILES[namaInputFile][name] => nama file yang diupload
$_FILES[namaInputFile][type] => mime type file yang diupload
$_FILES[namaInputFile][tmp_name] => nama file sementara yang dismpan disisi server
$_FILES[namaInputFile][error] => nomor urut jenis error (0 sampai 7) lihat keterangan di bawah
$_FILES[namaInputFile][size] => ukuran file yang diupload (satuan byte)

keterangan kode error UPLOAD_ERR_OK: 0
UPLOAD_ERR_INI_SIZE: 1
UPLOAD_ERR_FORM_SIZE: 2
UPLOAD_ERR_PARTIAL: 3
UPLOAD_ERR_NO_TMP_DIR: 6
UPLOAD_ERR_CANT_WRITE: 7
UPLOAD_ERR_EXTENSION: 8

$_COOKIES

COOKIES adalah informasi pribadi yang terenkripsi yang disimpan pada browser. biasanya cookie memiliki umur yang bisa ditentukan oleh user atau script, tapi secara umum cookie akan hilang atau terhapus dalam 24jam. Dahulu kala cookie berguna untuk sistem login user yang menyimpan informasi login, dsb tapi tidak bisa dibaca oleh pengunjung (bahkan tanpa sadar browsernya ada cookie yang tersimpan). Karena perhitungan keamanan akan sekarang cookie tidak lagi digunakan sebagai sistem sesi untuk login oleh para programmer karena perkembangan teknologi yang pesat sehingga cookie kini bisa dengan mudahnya dideteksi dan dibaca menggunakan beberapa baris scrip php misalnya.

MEMBUAT cookie => setcookie(namaCookie, isiCookie, usiaCookie)
MENGAMBIL isi cookie => $_COOKIE[namaCookie]
MENGHAPUS cookie => setcookie(namaCookie, "", DetikMundurHapusCookie)

Tambahan: saat ini penggunaan cookie dimanfaatkan sebagai durasi lama login, biasanya pada website seperti Facebook, Yahoo dll suka ada checkbox "Remember me", nah kalo kita menyentang opsi tersebut maka browser kita akan diisi cookie oleh website tersebut untuk mengingatkan informasi login kita.

Sampai sini dulu deh bahasan kita, sebenarnya masih ada 3 lag, yaitu $_SERVER, $_ENV dan $_SESSION tapi akan saya bahas di kesempatan lain deh ;)