Rabu, 06 November 2013

Jemari Sahabat

Dahulu kita pernah berbagi tawa, mengurai luka memulai bahagia. Disaat embun pagi mulai menghilang hingga senja mengukir warna emas dilangit nanti kita masih bersama. Sejenak ku ingat kita pernah bertengkar tentang hal – hal sederhana, lalu kita mulai menangis dan kembali seperti dahulu. Tangis itu tak akan abadi, karena kebersamaan kita telah mengubah langit yang kelam menjadi tata surya kita. Yah inilah kita, sederhana, pemimpi, kita bebas untuk beranjak sekalipun kaki kita lelah aku tak merasakannya ketika kita melangkah bersama.

Kita adalah dua jiwa yang bersatu, terikat dalam satu janti setia. Aku tak mampu mengejar bayang mu, sebab itu kau selalu setia menuntun ku untuk selalu seirama dengan langkah mu. Aku tak pandai mengeja, lalu kau dengan sabar mengajari ku setiap kata. Kau malam bagiku, kau anggap aku adalah siang bagi mu. Apakah kita saling melengkapi tanya ku. Lalu kau hanya tersenyum simpul seolah – olah kau tahu jawaban itu sudah ada dalam benak ku.

Wahai sahabat, dengarlah do’a sederhana ku untuk mu. Kata ku yang mungkin berarti untuk mu, untuk sekedar menemani mu ketika kau terjaga dan memeluk mu ketika kau terlelap. Dengarlah wahai sobat, dengarlah cerita kita kembali. Dahulu kau begitu ceria terhadap ku, menganggap setiap gerik ku adalah gelitik bagi mu. Kau tertawa, menggetarkan bibir mu. Menyihir ku untuk terjun ke dalam senyum itu. Aku tak tahu bagaimana kau melakukannya sahabat.

Sahabat, aku tahu tak ada satu hal pun di dunia ini yang sempurna. Tidak apa yang ada pada ku dan pada mu pula. Sahabat, pernah ada malam penuh bintang dan malam tanpa bintang dalam diri kita. Tidak ada yang sempurna dalam hidup kita, lalu kita saling melengkapi dan merapatkan jemari kita. Sahabat masih ingatkah engkau saat ku peluk engkau, ketika itu kau ketakutan berlari dan menangis. Ku sediakan bahuku, kau bersandar lalu air mata kita meleleh.

Sahabat aku rindu akan dirimu, kau yang selama ini begitu menjadi yang terbaik. Aku adalah bunga, ibarat kau adalah benang sari lalu putik lalu tangkai bunga, lalu kita akan berbaring bersama untuk selama  - lamanya.

Sahabat, maafkan aku. Jika aku masih seperti dulu, saat terakhir kau meninggalkan aku. Disini kesetiaan yang pernah kita ucapkan benar – benar dalam titik kerapuhan. Jangan kau tiup, ketika ku mulai menyusunnya. Bantulah aku untuk mendirikannya kembali. Kau mau kemana lagi, tidakkah kau rindu dengan sahabat mu ini. Tidakah kau mau tertawa bersama ku lagi. Tidakkah lagi ukiran – ukiran kecil itu menghibur mu sepulang dari kepergiaan mu.

Sahabat, kenanglah aku sebagai masa lalu mu jika kau tak lagi menganggap semua berarti bagi mu. Aku tak berhak mencegah mu, aku tak berhak untuk membatasi mu. Bahkan aku tak berhak untuk mengikat mu dalam persahabatan kita.


Sahabat, aku hanya ingin kau menyimpannya. Sisihkanlah sebagian dari hati mu untuk mengingat masa – masa bersama ku. lalu kau boleh meninggalkan ku, ketika kau teringat untuk kembali, berbaliklah masih ada tangan ku yang akan senang memeluk mu kembali, sebelum semua tak sanggup lagi ku berikan kepada mu sahabat.

Rumput Di Senja Hari

Aku tak habis pikir bagaimana dia melakukannya, aku tak tahu lagi bagaimana harus menggambarkanya. Ketika itu di bagian luar rumah aku duduk di sebuah gubuk yang tepat menghadap ke  persawahan, sejenak ku hirup udara disenja kali ini sungguh dingin apa karena mendung disisi timur itu batin ku. Lalu pikiran ku kembali menerawang jauh, tak ingat lagi gitar yang tadi ku bawa kini hanya bersandar disudut ruangan itu. Angin sore ini benar – benar menghanyutkan perasaan.

Tak ada yang istimewa disore itu, hanya sesekali sekumpulan burung pipit riuh kembali ke sarang. Benar – benar senja yang mengagumkan, setidaknya untuk tempat ditepi kota seperti ini. Saat matahari beberapa derajat lagi menuju keperaduan, sayup – sayup ditengah sawah itu muncul sesosok lelaki paruh baya, dengan sepeda tuanya terseok merapatkan diri ditengah sawah itu. Dibawanya dua ember besar dibelakang, sepeda itu nampak rapuh, sesekali berdecit besi yang satu bergesekan dengan besi yang lain. Pemandangan yang tak biasa bagiku. Aku terus menatapnya, apa yang dilakukannya dihari menjelang petang ini. Ku lihat tangannya mengayunkan sebilah sabit, sementara tangan yang satunya sibuk meraba – raba disekumpulan rumput yang tumbuh liar itu. Kini telah rapat jarinya dengan rumput itu lalu dimasukkannya kedalam ember besar itu hingga penuh satu persatu.

Aku tak mengerti arti dari semua ini, seperti ada sesuatu yang membisikkan ke dalam dada ku, Ya Tuhan engkau Maha Besar. Kini aku mengetahui engkau yang maha mengatur setiap hal dimuka bumi ini, setiap makhluk Mu telah Engkau berikan rizkinya masing – masing. Diri ini terhenyak menatap orang itu, tubuhnya yang kurus kecil kini berada diantara rerumputan itu terus melangkahkan hidupnya disetiap ayunan sabit itu. Ini pertemuan yang sederhana, aku tak tahu walaupun hanya melihat dengan sederhana aku bisa merasakan pelajaran yang luar biasa.

Ternyata semangat untuk terus mengejar keyakinan telah membuatnya melupakan apa arti kata lelah. Sebuah hal yang kini sering terlupakan oleh orang – orang saat ini. Inilah pengabdian yang sesungguhnya dimana hati bertemu keyakinan. Satu hal yang bisa kudapatkan dan kusimpulkan dari ribuan hikmah yang kudapat dari sosok itu adalah semangat untuk tetap mempunyai keyakinan yang utuh dan do’a yang tulus serta kesungguhan dalam berupaya akan mempunyai nilai tersendiri dihadapan Tuhan.

Kita dapat bekerja keras, kita dapat memfokuskan setiap hal dalam pekerjaan kita. Karena sejatinya kehidupan itu akan menuntut kita untuk tetap bergerak dan memahaminya. Setiap hal yang kita lakukan adalah arti dari hal yang lain, tidakah kita tau hal itu saling berkesinambungan. Rencana Tuhan memang besar dan memang tak bisa ditebak, aku tak menyangka bertemu dengan sosok itu disisi yang lain aku mendapatkan pelajaran yang sungguh berharga darinya.


Sosok – sosok hebat itu bisa datang dari mana saja, seorang yang hebat bukan yang selalu bisa mengalahkan lawannya atau hal – hal yang menghalangi langkahnya. Lebih dari itu seorang yang hebat adalah dia yang dapat menjadikan dirinya menjadi yang terbaik dan berupaya untuk menjadikan orang – orang disekitarnya menjadi lebih baik pula. Dia tidak pernah mengatakan seseorang harus begini atau harus seperti ini, namun dia menunjukkan sikap yang terpuji yang dapat diterima orang – orang disekitarnya dan mengubah apa yang ada menjadi lebih baik.

Sabtu, 02 November 2013

Hakikat Kebahagiaan

BAHAGIA
Oleh : Ikhwan Anshori

Ketika kita merasa nyaman, hati kita merasakan kedamaian, mungkinkah itu yang dinamakan kebahagiaan. Sebab kebahagiaan bukan tentang kaya atau miskin, banyak orang – orang kaya dengan segala fasilitas yang dimilikinya yang setiap waktu bisa ia gunakan untuk memenuhi kebutuha, kebanyakan mereka mengakui tidak bahagia dengan semua kekayaan yang dimilikinya. Ataukah setiap orang miskin selalu berbahagia, tidak semua.

Kebahagiaan adalah ukuran kedamaian hati, banyak orang yang merasakan gelisah yang membuatnya jauh dari kebahagiaan. Sebagian orang terlalu sibuk memikirkan apa yang harus dipenuhinya, sekalipun hal itu tidak benar – benar dibutuhkannya. Secara fisik kita perlu makan, minum kita harus bergerak untuk membiasakan tubuh terus beraktivitas. Disisi lain kita juga memerlukan adanya kebahagiaan batin, karena sejatinya kedua kebutuhan (fisik & batin) haruslah seimbang untuk mendapatkan kebahagiaan yang sesungguhnya.

Ketika kita merasakan hidup kita membosankan, melelahkan atau kita sendiri merasa bingung dengan langkah yang kita ambil. Mungkin saja salah satu kebutuhan itu ada yang kurang karena kita cenderung memenuhi kebutuhan yang lain dengan berlebihan. Lengkapilah kebutuhan antara batin dan fisik dengan seimbang. Jangan memberatkan yang satu dan meringankan yang lainya. Ibarat sebuah timbangan, timbangan yang sejajar akan selalu dipilih setiap orang (adil) dari pada timbangan yang berat sebelah (tidak adil).

Ketika ada yang mengatakan adil itu tidak harus sama, benar. Keadilan memang tak harus sama antara yang satu dengan yang lain, namun keadilan dapat menyeimbangkan antara yang satu dengan yang lainya. Sehingga keselarasan ini akan membuat ketentraman dalam jiwa, maka sebutlah itu sebagai kebahagiaan. 

Kebahagiaan itu milik setiap insan, namun terkadang setiap orang tidak merasakannya atau terkadang mereka enggan mendapatkannya dengan menekan dan memaksa diri mereka untuk menjauhi kebahagiaan itu dengan sebuah hal yang dapat memberatkan satu sisi baik fisik ataupun batin sehingga menyebabkan kebutuhan yang lain terlantar dan tidak terurus.

Maka cara terbaik untuk memperoleh kebahagiaan adalah dengan mengupayakannya, mulai dengan melihat kedalam diri sendiri. Jika hal itu telah kita lakukan namun kita juga tak mendapatkan hasil dari apa yang kita tanyakan, kita patut untuk mengoreksi kembali apa yang kita lakukan dan sudahkah kita merasakan kebahagiaan atas apa yang kita lakukan.
muslimah
That's why i must be happy

Menguji kebahagiaan dengan cara yang sederhana :

  1.Tersenyum mengingat hal – hal yang membuat kita tertawa, inilah hal pertama yang paling dekat dan mungkin kita lakukan secepat mungkin. Coba ingat masa lalu anda, saat anda dapat tertawa lepas, sesekali anda merasakan sakit diperut karena tertawa itu. Atau saat – saat ketika anda berkumpul bersama teman – teman untuk saling bercerita tentang kisah masing – masing setelah beberapa tahun tidak berjumpa, dengan kehangatan sapa dan candaan yang membekas dalam diri anda. Lalu lihat bagaimana anda menanggapi ingatan anda itu, apakah anda dapat tersenyum. Jika jawaban dari pertanyaan itu adalah “Ya” maka sejatinya anda dapat berbahagia dengan cara yang anda buat sendiri karena jalan untuk menuju ke ruang kebahagiaan itu sudah terbuka. Namun jika anda masih mendapatkan kesulitan bagaimana anda harus berekspresi untuk merespon ingatan anda, mungkin anda membutuhkan sedikit lagi ingatan yang lebih kuat saat anda benar – benar dalam ritme kebahagiaan, lakukanlah sekali lagi dengan santai, tenangkan tubuh anda dan buat pikiran anda serileks mungkin lalu coba ingat kembali saat – saat membahagiakan itu. Jika itu membantu, maka anda telah menemukan jalan yang lain untuk menuju ke arah kebahagiaan.

  2. Hargailah kebahagiaan yang kecil, kebanyakan orang menganggap sebuah hal yang kecil tidaklah perlu dirisaukan. Namun ketika kita mulai melupakan sesuatu yang kecil, kita juga telah belajar untuk melupakan sesuatu yang lebih besar. Ibarat sebuah lubang kecil dibak penampungan air, memang tidak banyak air yang keluar melalui lubang itu. Tapi coba lihat kembali setelah satu atau dua jam kemudian bukan tidak mungkin air dalam bak tersebut berkurang drastis. Hakikat kebahagiaan itu adalah menghargai hal – hal kecil yang dapat memperluas ruang dihati anda ketika anda melakukannya, setelah anda melakukannya anda akan merasakan seperti ada beban yang lepas dari diri anda. Lalu, hargailah kkebahagiaan yang kecil itu walau hanya dengan senyum sederhana. Karena dari hal – hal kecil itulah hal yang besar dapat terjadi.


  3. Hargailah kebahagiaan orang lain, ini bukan berarti hukum sebab akibat langsung. Saya sewaktu SD pernah membuat sebuah pantun sederhana :

“ pagi – pagi pergi ke kali
  Mau mandi dingin sekali
  Belajarlah menghormati
  Agar engkau dihargai “

Betapa pentingnya penghargaan terhadap seseorang, penghargaan tidak mesti berbentuk sertifikat, sebab di Indonesia adalah negara budaya, disini peraturan tidak tertulis, disini tidak ada hukum yang ditulis, namun kenyataannya peraturan itu tetap hidup di dalam masyarakat, kenyataan yang lain adalah norma – norma hidup masyarakat tetap terjaga dengan baik. Inilah penghargaan yang sesungguhnya dimana nilai lebih berarti dari pada apa yang terlihat.

Lalu apakah hal ini ada kaitanya dengan kebahagiaan yang kita bicarakan, tentu. Seseorang yang seang dilanda bahagia ia akan mengekspresikan bagaimana perasaanya, sebagai jiwa yang baik kita patut bersenang hati ketika orang lain mendapatkan kebahagiaan. Anggaplah kita semua ini bagai anggota tubuh yang utuh, ketika satu bagian merasakan sakit, maka anggota tubuh yang lain juga pasti akan merasakannya. 

Begitu juga kalau kita sehat, maka setiap anggota tubuh kita juga berada dalam kondisi terbaiknya.
Menghargai kebahagiaan orang lain memang perlu, sebab kita tak akan pernah tau bagaimana takdir akan menuntun kita, namun kita mempunyai hak untuk menjadikan hidup kita menjadi lebih baik.


Itulah hakikat kebahagiaan yang dapat saya utarakan. Memang banyak definisi kebahagiaan pada setiap orang, karena setiap jiwa itu istimewa, dia dapat memiliki caranya tersendiri untuk mencapai kebahagiaan yang diinginkannya. Kebahagiaan itu takaran kedamaian hati, ketika hati telah merasakan suasana terindah untuk bersandar maka disitulah letak kebahagiaan itu. Ditempat dimana setiap jiwa akan merasakan ketenangan dengan cara mereka sendiri – sendiri.

Jumat, 01 November 2013

SESSION IN PHP WITH "$_SESSION" VARIABLE

Oleh : Ikhwan Anshori
"mari berilmu untuk berbagi"





Pendahuluan
PHP session variabel digunakan untuk menyediakan seputar informasi, atau mengubah pengaturan untuk sessi pengguna. Variabel sessi membawa informasi mengenai satu anggota / pengguna , dan memungkinkan untuk mengakses ke semua halaman web. Variabel sessi ini berbeda – beda antara anggota yang satu dengan anggota yang lain sehingga antara data anggota yang satu dengan yang lainya tidak tercampur.

Variabel Session PHP
Ketika kita bekerja dengan sebuah aplikasi, kita menggunakan aplikasi dan melakukan pengubahan data kemudian mengakhiri aplikasi tersebut. Inilah yang sering disebut session. Komputer dapat mengetahui data penggunanya. Hal ini terjadi ketika kita mulai menggunakan aplikasi tersebut kemudian mengakhirinya. Tapi dari segi internet terdapat sebuah permasalahan yaitu : Web Server tidak mengetahui kita ketika kita melakukan pengubahan data karena almat HTTP tidak melakukan pengecekan tersebut.
Session PHP menyediakan solusi untuk permasalahan tersebut dengan mengijinkan kita untuk menunjukkan informasi pengguna terakhir kepada web server (misal : nama pengguna, jumlah barang yang dibeli, dll).Nilai session adalah sementara dan akan dihapus setelah pengguna telah keluar dari web site yang dikunjunguinya. Jika kita menginkan session yang permanen artinya jika kita keluar dari web site tersebut namun informasi session masih dibawa dan tidak hilang, informasi ini disimpan didalam database.
Session bekerja dengan membuat ID unik (Unique ID ->UID) untuk mengambil pengunjung dan menyediakan variabel berdasarkan UID ini. UID ini berwujud seperti cookie atau dikenali lewat URL.

Memulai Session PHP
Sebelum kita dapat menyediakan informasi dalam session PHP, pertama kali kita harus memulai sessionnya :

Catatan : fungsi session_start() harus diletakkan sebelum tag html (<html>) :
<?php session_start(); ?>

<html>
<body>

</body>
</html>
Kode diatas akan mendaftarkan variabel session ke server , mengijinkan kita untuk memulai menyimpan informasi pengguna, dan membuat UID untuk sessi pengguna tersebut.

Menyimpan Variabel Session
Jalan terbaik untuk menyimpan dan mendapatkan kembali variabel session adalah dengan menggunakan variabel PHP $_SESSION :
<?php
session_start();
//menyimpan data session
$_SESSION['tampil']=1;
?>

<html>
<body>

<?php
session_start();
//menampilkan kembali data session
echo "Jumlah penampilan halaman = ".$_SESSION['tampil'];
?>

</body>
</html>

Output :

Jumlah penampilan halaman = 1

Pada contoh dibawah, kita akan membuat penghitung jumlah tampilan halaman yang sederhana. Fungsi isset akan memeriksa jika variabel “tampil” telah diatur. Jika “tampil” telah diatur, kita dapatkan penambahan penghitungan. Jika “tampil”  sudah tidak tersedia, kita membuat variabel “tampil”, dan mengaturnya menjadi 1:

<?php
session_start();

if(isset($_SESSION['tampil']))
$_SESSION['views']=$_SESSION['tampil']+1;
else
$_SESSION['tampil']=1;
echo "Views=". $_SESSION['tampil'];
?>

Mengakhiri Sebuah Session
Jika kita mengharapkan untuk menghapus informasi session, kita dapat menggunakan fungsi unset() atau session_desytroy(). Fungsi unset() digunakan untuk mengakhiri variabel session yang spesifik :

<?php
session_start();
if(isset($_SESSION['views']))
  unset($_SESSION['views']);
?>

Kita dapat juga mengakhiri session dengan memanggil fungsi session_destroy().

<?php
session_destroy();
?>

Catatan : session_destroy akan mengatur kembali session seperti awal dan kita akan kehilangan informasi session yang disimpan.



SESSION IN PHP WITH COOKIES


Oleh : Ikhwan Anshori

Assalamualaikum Warahmatullahi Wabarakatuh

" Mari berilmu untuk berbagi"





Pendahuluan
Cookie sering digunakan untuk mengidentifikasi pengguna, sebuah cookie adalah file kecil yang disertakan server di komputer pengguna. Setiap waktu komputer yang sama meminta halaman dengan browser, cookie dikirimkan pula bersamaan dengan permintaan itu. Dengan menggunakan PHP , kita dapat membuat dan menampilkan kembali nilai cookie.

Membuat Cookie
Fungsi setcookie() digunakan untuk mengatur cookie.
Catatan: fungsi setcookie() harus digunakan sebelum tag <html> :

SYNTAX
setcookie(name, value, expire, path, domain);

CONTOH 1
Pada contoh dibawah ini, kita akan membuat sebuah cookie dengan nama “pengguna”  dan menetapkan nilainya “Alex Porter”. Kita juga mengatur cookie akan berakhir setelah satu jam :

<?php
setcookie("user", "Alex Porter", time()+3600);
?>

<html>
.....

Catatan : Nilai cookie akan secara otomatis dienkripsi URL ketika cookie dikirimkan, dan otomatis mengembalikan seperti semula ketika cookie diterima (untuk melindungi enkripsi URL, gunakan setrawcookie()).

CONTOH 2
Kita juga dapat mengatur batas akhir cookie dengan cara yang lain. Ini mungkin lebih praktis dari pada menggunakan detik .

<?php
$expire=time()+60*60*24*30;
setcookie("user", "Alex Porter", $expire);
?>

<html>
.....

Pada contoh di atas batas akhir cookie adalah diatur dalam satu bulan (60 detik * 60  menit * 24  jam * 30 hari).

Menampilkan Kembali Nilai Cookie
Variabel PHP $_COOKIE digunakan untuk menampilkan nilai cookie. Pada contoh dibawah ini, kita menampilkan cookie dengan nama “user” dan menampilkannya dihalaman :

<?php
// Print a cookie
echo $_COOKIE["user"];

// A way to view all cookies
print_r($_COOKIE);
?>

Pada contoh dibawah ini, kita menggunakan fungsi isset() untuk memastikan jika cookie telah diatur :

<html>
<body>

<?php
if (isset($_COOKIE["user"]))
  echo "Welcome " . $_COOKIE["user"] . "!<br>";
else
  echo "Welcome guest!<br>";
?>

</body>
</html>

Menghapus Cookie
Ketika kita menghapus cookie kita dapat memastikan bahwa batas akhir masa cookie telah berlalu.
Contoh penghapusan cookie :

<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>

FUNGSI PHP ! AMANKAN VARIABEL FORM

Book PHP
Let's Learn Again
Disusun oleh : Ikhwan Anshori
Assalamualaikum Warahmatullahi Wabarakatuh J








Pendahuluan
Salah satu pertanyaan ketika kita hendak mengirimkan string yang didapat dari from user ke dalam database adalah, sudahkah string tersebut aman?. Pasalnya tidak semua string yang dimasukkan oleh user adalah string yang valid, bisa jadi string yang dimasukkan adalah karakter atau simbol – simbol yang dapat mempengaruhi query saat disimpan. Untuk mengatasi string yang salah atau mengandung kode – kode yang dapat mempengaruhi kinerja sistem, maka PHP menyediakan beberapa fungsi untuk mengamankan string agar ketika dilakukan query tidak menyebabkan kesalahan.

Fungsi PHP
Beberapa fungsi PHP untuk mengamankan string seperti fungsi htmlentities(),  addslashes(),  dan strip_tags(). Ketiga fungsi tersebut sering digunakan untuk mengamankan string ketika akan dimasukkan kedalam database. Meskipun ketiga fungsi tersebut mempunyai “maksud” yang sama yaitu mengamankan string, namun ketiga fungsi memiliki “caranya” sendiri – sendiri dalam beraksi.

Fungsi htmlentities()
Fungsi htmlentities() digunakan untuk mengamankan tag – tag html yang terdapat pada sebuah string dengan mengubah kurung lancip buka “<” menjadi tag html &lt; sedangkan untuk kurung tutup “> diubah menjadi tag &gt;. Karena pengubahan ini, ketika string ditampilkan dihalaman browser maka tag – tag html yang dibawa string tidak akan memberikan pengaruh, dan akan ditampilkan apa adanya.

Htmlentities.php
<?php
// misal string
$string = "<b>tebal</b>";

// proses filter
$filter = htmlentities($string);

// tampilkan hasil
echo $filter;
?>

Output :
<b>tebal</b>

Untuk hasil bukan tampil dibrowser string tebal, justeru sebaliknya string akan ditampilkan sama persis ketika ia dimasukkan.

Fungsi Strip_tags()
Fungsi ini mirip dengan fungsi sebelumya yaitu untuk memfilter tag html. Bedanya fungsi ini lebih “tegas” dengan secara otomatis akan “menggunduli” tag – tag html yang dibawa sebuah string sehingga string benar – benar bersih tanpa tag html. Fungsi ini cocok digunakan untuk input seperti nama, email, atau data yang lainya yang tidak memerlukan tag html.

Strip_tags.php
<?php
// fungsi strip_tags()
// misal string
$string = "<b>tebal</b>";

// proses filter
$filter = strip_tags($string);

// tampilkan hasil
echo $filter;
?>

Output :
tebal

Fungsi addslashes()
Fungsi ini berbeda dengan 2 fungsi sebelumnya, fungsiini bekerja dengan memberikan tanda “\” sebelum simbol single quote ( ‘ ). Filter untuk simbol ini penting dilakukan sebelum string dimasukkan kedalam database, jika tidak misalkan user memasukkan nama “fu’ad”, kemudian nama tersebut dibawa menjadi sebuah string untuk dilakukan query insert, sedang dalam string tersebut memuat simbol single quote. Simbol ini dapat mengacaukan query yang ada.
Misalkan kita mempunyai query “insert into nama_tabel (nama) values(‘ $string_nama‘)” nah seandainya nama fu’ad dimuat dalam query yang terjadi adalah “insert into nama_tabel  (nama) values(‘ fu’ad‘)” lihat pada bagian ‘fu’ad’ simbol single quote dalam query adalah sebuah tanda dari string, nah kalau sampai hal ini terjadi, berarti dalam query terjadi jumlah single quote yang ganjil, ini akan menyebabkan error.
Fungsi addslashes() bekerja seperti :

Addslashes.php
<?php
// fungsi addcslashes()
// misal string
$string = "fu'ad";

// proses filter
$filter = addslashes($string);

// tampilkan hasil
echo $filter;
?>

Output :
Fu\’ad

Simbol “\” didepan simbol single quote ( ‘ ) menjadikan simbol single quote tidak dianggap didalam query sehingga tidak menyebabkan error.

Catatan :
Fungsi addslashes() akan membuat string yang mengandung single quote menjadi seperti output diatas, yaitu terdapat simbol “\” didepan single quote. Ini berlanjut hingga data dimasukkan kedalam database. Untuk mengatasi hal tersebut maka digunakan fungsi stripslashes(). Fungsi ini akan secara otomatis menghilangkan simbol “\” sehingga string dari database dapat ditampilkan ke keadaan semula.


Sekian pembahasan mengenai beberapa fungsi PHP yang sering digunakan untuk mengamankan string yang didapat dari form maupun dari URL. Untuk membuat string lebih aman anda dapat menggabungkan beberapa fungsi sekaligus (dipakai bersamaan), ini akan membuat string lebih bersih. Semoga dapat bermanfaat. 

Cari, ambil string dalam string dengan fungsi PHP stristr()

learning PHP
Learing PHP

Fungsi PHP stristr()


Fungsi ini akan mencari string yang berada diantara sekumpulan string dengan keyword yang telah ditentukan, meski pun string ini dapat menemukan string yang dicari, namun hasil dari pencarian ini bukan berarti string dapat diambil secara utuh, kumpulan string tersebut akan otomatis terpotong pada bagian string yang dicari sampai akhir dari string.
Format penggunaan fungsi stristr() adalah : stristr($kumpulan_string , $string_yang_dicari). Nah pencarian akan dimulai dari depan dengan tidak “memperdulikan” string yang dicari adalah bagian dari kata atau sebuah kata utuh, jadi untuk menggunakannya harus cermat .

Rabu, 09 Oktober 2013

PHP. AUTOCOMPLETE DENGAN AJAX

PHP.AJAX
AUTOCOMPLETE DENGAN AJAX
Ikhwan Anshori

Auto complete atau sering juga disebut Auto suggest adalah metode pemrograman untuk membuat praktis dalam melakukan sebuah pencarian. Dengan menggunakan auto complete kita tidak harus mengingat seluruh keyword yang akan kita cari. Dengan demikian proses pencarian akan lebih cepat dilakukan.


Untuk membuat sebuah auto complete bisa menggunakan beberapa bahasa pemrograman misalnya AJAX dan yang lainya. Nah kali ini yang akan digunakan adalah ajax auto complete. Beberapa kebutuhan yang akan digunakan dalam membuat autocomplete ini antara lain :
1.    Database (coba)

a.    Tabel (barang)
Struktur tabel barang sebagai berikut :


2.    File PHP meliputi :
a.    Search.html
b.    Search.php

3.    CSS file (style.css)
Kebutuhan dari pembuatan Ajax Auto Complete ini telah didapat, kemudian untuk pertama kita buat databasenya berikut tabel beserta recordnya dengan SQL berikut :
-- buat database dengan nama coba --
create DATABASE `coba`;

-- gunakan database coba --
use `coba`;

--
-- Table structure for table `barang`
--

CREATE TABLE IF NOT EXISTS `barang` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `nama` varchar(20) NOT NULL,
  `stock` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

--
-- Dumping data for table `barang`
--

INSERT INTO `barang` (`id`, `nama`, `stock`) VALUES
(1, 'Baju', 405),
(2, 'Celana', 1),
(3, 'Kemeja', 4),
(4, 'a', 1),
(5, 'b', 2),
(6, 'c', 3),
(7, 'd', 4),
(8, 'e', 5),
(9, 'f', 7),
(10, 'g', 8),
(11, 'h', 9),
(12, 'i', 10),
(13, 'j', 11),
(14, 'aaa', 21),
(15, 'aaaaa', 22),
(16, 'aasaas', 23),
(17, 'adasa', 24),
(18, 'asadasa', 25);

SQL diatas digunakan untuk membuat database dengan nama coba. Kemudian didalam database coba kita buat tabel dengan nama barang, lalu kita masukan record untuk percobaan seperti pada script diatas.
Jika SQL sudah dieksekusi maka tabel yang akan terlihat seperti berikut  (beserta record):

Kemudian untuk file – file proses :

1.   Search.html

<html>
<head>
<title>AJAX AUTO COMPLETE</title>
<link rel='stylesheet' type='text/css' href='style.css' />
<script language='JavaScript'>
var ajaxRequest;
function getAjax() //fungsi untuk mengecek AJAX pada browser
{
try
{
ajaxRequest = new XMLHttpRequest();
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser broke!");
return false;
}
}
}
}
function autoComplete() //fungsi menangkap input search dan menampilkan hasil search
{
getAjax();
input = document.getElementById('inputan').value;

if (input == "")
{
document.getElementById("hasil").innerHTML = "";
}
else
{
ajaxRequest.open("GET","search.php?input="+input);
ajaxRequest.onreadystatechange = function()
{
document.getElementById("hasil").innerHTML = ajaxRequest.responseText;
}
ajaxRequest.send(null);
}
}

function autoInsert(nama) //fungsi mengisi input text dengan hasil pencarian yang dipilih
{
document.getElementById('inputan').value = nama;
document.getElementById('hasil').innerHTML = "";
}
</script>
</head>
<body>
<div id='outer'>
Nama Barang : <hr/><input type='text' onkeyup="autoComplete();" id='inputan' placeholder='cari disini'>
<div id='hasil'></div> <!– menampilkan hasil search –>
</div>
</body>
</html>
Penjelasan :
function getAjax() //fungsi untuk mengecek AJAX pada browser
{
try
{
ajaxRequest = new XMLHttpRequest();
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser broke!");
return false;
}
}
}
}
Script diatas digunakan untuk cek AJAX pada browser. Sebab versi browser berbeda, cek ini penting dilakukan untuk memastikan ajax dapat bekerja di browser dengan baik.
function autoComplete() //fungsi menangkap input search dan menampilkan hasil search
{
getAjax();
input = document.getElementById('inputan').value;

if (input == "")
{
document.getElementById("hasil").innerHTML = "";
}
else
{
ajaxRequest.open("GET","search.php?input="+input);
ajaxRequest.onreadystatechange = function()
{
document.getElementById("hasil").innerHTML = ajaxRequest.responseText;
}
ajaxRequest.send(null);
}
}

Untuk script diatas secara ringkas maksudnya adalah ketika user menuliskan huruf pada input field, maka event onkeyup akan mendeteksi input tersebut dan secara stimulan mengirimkanya ke fungsi auto complete ini (function autoComplete). Di dalam fungsi ini masih terdapat beberapa filter, yakni ketika tidak ada satupun karakter ditulis namun kolom input dalam keadaan aktif maka ajax tidak akan melakukan request ke search.php, sebaliknya jika terdapat karakter yang dituliskan ke kolom input, fungsi ini akan melakukan request kepada file search.php dengan membawa parameter (keyword) yang diketik oleh user.

function autoInsert(nama) //fungsi mengisi input text dengan hasil pencarian yang dipilih
{
document.getElementById('inputan').value = nama;
document.getElementById('hasil').innerHTML = "";
}
Setelah pencarian selesai dilakukan maka record yang didapat dari keyword akan ditampilkan, ketika user memilih suggest yang diberikan oleh ajax maka fungsi ini yang akan menangani input tersebut. Ketika event klik pada list suggest dilakukan oleh user,maka secara otomatis fungsi ini membaca apa yang dipilih oleh user dan memasukannya ke kolom input.
input type='text' onkeyup="autoComplete();" id='inputan' placeholder='cari disini'>

Input diatas digunakan untuk memasukan keyword. Sementara atribut onkeyup digunakan untuk mendeteksi penulisan di dalam kolom input.

<div id='hasil'></div> <!– menampilkan hasil search –>

Setelah pencarian berhasil dilakukan kemudian data dikembalikan lagi ke file search.html dan hasil pencarian diletakan di tag div yang mempunyai identitas hasil.

2.       Search.php

<html>
<head>
    <link rel='stylesheet' type='text/css' href='style.css' />
</head>
<body>
<?php
mysql_connect("localhost","root",""); /* koneksi */
mysql_select_db("coba");     /* MySQL */
if (isset($_GET['input']))
{
$input = $_GET['input'];
$query = mysql_query("SELECT * FROM barang WHERE nama LIKE '%$input%'"); //query mencari hasil search
$hasil = mysql_num_rows($query);
if ($hasil !=0)
{
echo"<ul class='auto'>";
while ($data = mysql_fetch_array($query))
{
?>
<a href="javascript:autoInsert('<?php echo"$data[1]"; ?>');">
<li>
<?php echo"$data[0]. $data[1] stok $data[2]"; ?>
</li>
</a>
<?php
}
echo"</ul>";
}
else
{
echo "Data tidak ditemukan";
}
}

else if(isset($_GET['id']))
{
$id = $_GET['id'];
$query = mysql_query("SELECT * FROM barang WHERE id='$id'");
$info = mysql_fetch_row($query);
echo "ID : ".$info[0]."<BR>Nama : ".$info[1]."<BR>Stock : ".$info[2];
}
?>
</body>
</html>

Penjelasan :
mysql_connect("localhost","root",""); /* koneksi */
mysql_select_db("coba");     /* MySQL */

Script diatas digunakan untuk koneksi ke localhost MySQL.
$input = $_GET['input'];
$query = mysql_query("SELECT * FROM barang WHERE nama LIKE '%$input%'"); //query mencari hasil search

Setelah keyword didapatkan dari request ajax dengan menggunakan metode get kemudian diambil ($_GET[‘input’]) dan dilakukan query select untuk mencari record yang mempunyai kandungan keyword tersebut didalamnya.

$hasil = mysql_num_rows($query);
if ($hasil !=0)

Kemudian dilakukan penghitungan terhadap record yang didapat, jika ternyata record yang dihitung adalah nol (0) atau tidak ditemukan record berdasarkan keyword yang dicari maka akan mucul pesan

echo "Data tidak ditemukan";

Atau sebaliknya jika memang terdapat record yang dicari maka lakukan baris berikut :

else if(isset($_GET['id']))
{
$id = $_GET['id'];
$query = mysql_query("SELECT * FROM barang WHERE id='$id'");
$info = mysql_fetch_row($query);
echo "ID : ".$info[0]."<BR>Nama : ".$info[1]."<BR>Stock : ".$info[2];
}

Pada script diatas dapat ditebak bahwa yang akan ditampilkan adalah field 0,1,2 (id,nama,stock).

3.   Style.css

/*
style.css
digunakan untuk tampilan
*/
body,html{margin: 0px;font-family: tahoma,arial,helvetica;font-size: 11px;color: #191919;padding: 10px;}
#outer{width: 300px;height: auto;overflow: hidden;margin: 5px;border: 0.1em solid #edd897;padding: 5px;background: #f3efe5;
-moz-box-shadow: 0px 0px 4px 4px #555;-webkit-box-shadow: 0px 0px 4px 4px #555;-khtml-box-shadow: 0px 0px 4px 4px #555;box-shadow: 0px 0px 3px 2px #bbb;
}
input{width: 200px;height: 30px;border: 0.1em solid #edd897;-moz-border-radius: 5px;-khtml-border-radius: 5px;-webkit-border-radius: 5px;border-radius: 5px;}
ul.auto{width: 100%;height: auto;overflow: hidden;display: inline;margin: 0px;padding: 0px;}
ul.auto li{width: 100%;height: 22px;border-bottom: 0.1em solid #edd897;background: #f4f4f4;padding: 8px 0px 0px 5px;}
ul.auto li:hover{background: #e9e9e9;}
a{text-decoration: none;color: #2f8eee;}

CSS diatas digunakan untuk memperindah tampilan pencarian di halaman search.html yang telah dibuat tadi. Dan hasil pembuatan ajax auto complete sebagai berikut :


Demikian artikel yang dapat saya bagikan, jika sekiranya dibutuhkan silakan di-copy, jika ingin dibagikan silakan cantumkan alamat sumber. Terima kasih saran yang membangun sangat penulis harapkan demi perbaikan artikel ini ke depanya. Terima kasih.




Yogyakarta, 8 Oktober 2013


Ikhwan Anshori        

Cari sesuatu?

Teman

 
 
Copyright © 2013 goldenbooks - All Rights Reserved
Golden Books - Powered By Blogger