PHP Form Handling Tips
Saya pengen sharing beberapa tips untuk proses penanganan form di PHP yang wajib dalam aplikasi web. Kalau seandainya anda udah ngerti gpp kan baca2 lagi ;))
-
Gunakan hidden element untuk menandai form yang di-submit
Saya punya kebiasaan untuk menekan tombol enter setelah mengisi form. Masalahnya, ada beberapa aplikasi — saya lupa dimana, menggunakan value dari tombol submit untuk menandai form yang tersubmit. Misal:
<?php if ($_POST['submit']) { $username = $_POST['username']; } ?> <form method='post'> <input type='text' name='username' size='20' /> <input type='submit' name='submit' value='Submit' /> </form>Seandainya saya ngga menekan tombol submit, maka kode PHP tersebut ngga akan dieksekusi. Padahal form bisa disubmit dengan cara nekan enter. Solusinya, saya pakai hidden field.
<?php if ($_POST['login'] == 'login') { $username = $_POST['username']; } ?> <form method='post'> <input type='text' name='username' size='20' /> <input type='submit' value='Submit' /> <input type='hidden' name='login' value='login' /> </form> -
Outputkan HTML dengan format HTML
Ada dua fungsi yang bisa dipakai untuk output yaitu
htmlentitiesdanhtmlspecialchars. Gunakan fungsi ini demi keamanan skrip anda (menghindari XSS). Tapi karena nama fungsinya yang panjang dan menyebalkan, maka saya sering me-rename fungsi ini dengan nama yang pendek.<?php function h($s) { return htmlentities($s) }; ?> <input type='text' name='q' value='<?=h($q)?>' /> -
Array Form
Daripada anda melakukan:
<input type='text' name='girlfriend1' size='20' /> <input type='text' name='girlfriend2' size='20' /> <input type='text' name='girlfriend3' size='20' />
Anda dapat juga:
<input type='text' name='girlfriend[]' size='20' /> <input type='text' name='girlfriend[]' size='20' /> <input type='text' name='girlfriend[]' size='20' />
Kemudian untuk mengambilnya cukup:
<?php $girlfriend = $_POST['girlfriend']; foreach($girlfriend as $girl) { // proses secukupnya } ?>PHP akan mengenali inputan berbentuk array tersebut
Sementara itu dulu, tips2 dari saya. Semoga bermanfaat
6 Comments | [Put comments]