14 January 2012, 10:38 WIB | 205 Views
Sama seperti Artikel - artikel sebelumnya yang membahas XTemplate, klik disini untuk membaca instalasi Xtemplate. Saya menekankan Validasi Form hendaknya kalian dilakukan pada sisi Server site (php, asp, jsp, dll) atau bila kalian menggunakan Javascript Validalation jangan lupa memvalidasi pada sisi pemroses, mengapa? karena javascript bersifat Client site jadi jika mode javascript pada Browser dimatikan tentu javascript validation menjadi tidak berguna, Bukannya bisa ditambahakan html
<noscript>Maaf silahkan aktifkan Javascript pada browser anda.</noscript>
Memang benar pada sisi html kalian bisa menambahakan script tersebut akan tetapi bagaimana bila pengisian dilakukan Via Remote (pengisian tidak pada Form yang kalian sediakan.) tentu kalian ga' pengen website yang sudah kalian bangun dengan susah payah, dibuat ajang SPAM oleh orang - orang tertentu. Saya kombinasikan validasi sebuah form dengan menggunakan XTemplate pada artikel kali ini, OK sekarang kita coba buat yang sederhana dan sedikit ditambahkan beberapa keamanan.
1. Buat 1 file untuk tampilan website buat pada folder themes (seperti biasa
) dengan nama main.html
<form action="" method="post" name="frm_post">
<table width="500" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="70">Nama *</td>
<td width="10">:</td>
<td width="300"><input type="text" name="nama" id="nama" value="{nama}" /></td>
</tr>
<tr>
<td width="70">Email *</td>
<td width="10">:</td>
<td width="300"><input type="text" name="email" id="email" value="{email}" /></td>
</tr>
<tr>
<td width="70" valign="top">Pesan *</td>
<td width="10" valign="top">:</td>
<td width="300"><textarea name="pesan" id="pesan" rows="5" cols="40">{pesan}</textarea></td>
</tr>
<tr>
<td colspan="3"><input type="submit" name="submit" id="submit" value="Submit" /> <input type="reset" name="reset" id="reset" value="Batal" /></td>
</tr>
</table>
</form>
Lihat pada masing value terdapat {nama}, {email}, {pesan} adalah nilai balik apabila Terdapat kesalahan penginputan, yang mengembalikan nilai tersebut adalah XTemplate (lihat ketenangan berwarna biru).
2. Buat file yang memproses sekaliagus yang menampikan template
<?php
require_once( 'xtemplate.class.php' ); // class untuk Xtemplate
$tpl = new XTemplate('main.html', 'theme', null, 'main', true); // akses template yang pertama kali dengan nama main.html
$referer_uri = "http://localhost/form/"; // masukkan Host kalian pada variabel ini
if($_POST[submit]){ //bila terdapat post submit kerjakan
if($_SERVER['HTTP_REFERER'] == $referer_uri){ // untuk membandingkan haisl referer apakah dikirim dari domain kita
$nama = $_POST['nama'];
$email = $_POST['email'];
$pesan = $_POST['pesan'];
if(!empty($nama) && strlen($nama) >= 4){ // nama hanya tidak boleh kosong dan minimal input 4 karakter
if(!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL)){ // Email tidak boleh kosong dan cek penusilan email apakah sudah benar
if(!empty($pesan)){ // Pesan tidak boleh kosong
$msg = "<div class=\"sukses\">Terima kasih <strong>$nama</strong>, pesan anda berhasil diinputkan.</div>"; // pesan yang akan ditampilkan bila seluruh filter berhasil dipenuhi.
}else{
$msg = "<div class=\"error\">Silahkan isi Pesan anda.</div>";
// pesan yang muncul ketika pesan kosong$tpl->assign($_POST); //XTemplate akan mengembalikan hasil kiriman Post Agar tidak perlu menginput ulang seluruh Text Field
}
}else{
$msg = "<div class=\"error\">Silahkan isi Email yang benar.</div>";// pesan yang muncul ketika email kosong/salah
$tpl->assign($_POST); //XTemplate akan mengembalikan hasil kiriman Post Agar tidak perlu menginput ulang seluruh Text Field
}
}else{
$msg = "<div class=\"error\">Silahkan isi Nama anda minimum 4 karakter.</div>"; // pesan yang muncul ketika nama kosong/kurang dari 4
$tpl->assign($_POST); //XTemplate akan mengembalikan hasil kiriman Post Agar tidak perlu menginput ulang seluruh Text Field
}
}else{
$msg = "<div class=\"error\">Silahkan Input pada halaman yang semestinya.</div>"; // pesan yang muncul ketika referer menangkap perbedaan Host yang diinput
$tpl->assign($_POST); //XTemplate akan mengembalikan hasil kiriman Post Agar tidak perlu menginput ulang seluruh Text Field
}
$tpl->assign("MESSAGE", $msg); // Bagian dari XTemplate untuk menampilkan pada halaman website.
}
$tpl->parse('main',600); // output parse main template
$tpl->out('main'); // output dari seluruh template
?>
Pembuatan website saat ini sudah semakin bagus dan membenamkan Teknik - teknik canggih untuk mempermudahkan pengguna website dalam menjalankan website atau web application. CURD adaah teknik yang bagus untuk melakukan input edit dan delete data....