Assalamu'alaikum Sobat muslim. hari jumat yang indah ini akan saya isi dengan materi pemrograman PHP. Ya maklum kerjanya memang simpel-simpel gitu, jadi blog ini saya buat juga sebagai media pengingat ketika saya lupa. OK langsung saja saya ceritakan dulu ya kronologinya, pagi ini saya mendapat laporan dari seorang karyawan bahwa selalu tidak bisa menginput data seorang karyawan. Lah kok bisa???
Padahal yang lain ok-ok saja. Cek ricek saya lakukan deh. Eh bener karena data pada form yang wajib diisi adalah data NIK dan data Nama karyawan maka saya tanyakan apakah nama karyawan pakai tanda petik " ' "??? Dan ternyata benar adanya karena nama karyawan yang dimaksud berbau Islam dan menggunkan tanpa petik tunggal. Lalu kenapa tanda petik tidak bisa dimasukkan langsung dengan php??? Ternyata celah inilah yang digunakan untuk melakukan SQL Injection sehingga pada php terbaru telah ada pembaharuan yang memastikan data lebih aman dan terbebas dari SQL Injection.
Lalu bagaimana dong inputkan tanda petik ke databases ??? PHP menutup akses langsung untuk menginput tanda petik dan memberikan fungsi addslashes() sebagai pengantinya. Memang ribet tapi demi keamanan ya harus begitu. langsung saja saya berikan gambaran penggunaan fungsi ini. Seminal kita menggunakan kata Ali Ma'sum yang akan dimasukkan ke dalam MySQL.
//nama sebagai nama inputan yang akan dipost
$nama = $_POST['nama'];
//kita gunakan fungsi addslashes()
$nama = addslashes($nama);
Selanjutnya masukkan query inputan seperti biasa. Bagaimana??? Apakah sudah OK ??? Selanjutnya bagaimana untuk menampilkan hasil dari inputan yang telah masuk ke databases. Jika kita memuat data dengan cara biasa maka yang mungcul bukan Ali Ma'sum melainkan hanya kata Ali Ma saja. Hal ini seperti yang saya uraikan diatas. PHP melakukan bloking terhadap tanda petik. Sehingga data yang ada didalam databases sudah benar jika ditampilkan dengan php maka tidak akan sempurna. Lalu bagaimana mensiasati hal ini. PHP memeberikan satu fungsi lagi yaitu
htmlentities($data,ENT_QUOTES).
Lalu bagaimana penggunaanya langsung saya beri contohnya seperti dibawah ini.//Load data nama dari databases ke $namaSemoga bisa membantu.
$nama = $data['nama'];
//gunakan fungsi htmlentities() kemudian kita tampilkan dengan echo
echo htmlentities($nama],ENT_QUOTES);
Best regard to google.com and stackoverflow.com
trims masukannya bos...emang lebih sulit PHP dr HTML ya...
ReplyDelete