Tuesday, July 1, 2008

Menangkap Variabel Post

 

Halo semua, jumpa lagi dengan Phii. Kali ini, Phii akan membahas bagiamana menangkap variabel post pada form buku tamu sederhana agar ketika pengunjung memasukkan data dan ada beberapa data yang tidak valid, pengunjung web kita tidak perlu mengisi ulang dari awal lagi. Bingung? Kira2 begini, misal pengunjung web kita sudah menulis panjang lebar untuk data pesan, tapi kelupaan nulis data email, padahal data email wajib ditulis. Nah, ketika dikirim, proses akan dibatalkan karana ada data yang tidak lengkap dan akan menampilkan kembali form buku tamu yang kosong. Kasihan kan kalo harus nulis lagi, bisa jadi malah pengunjung web kita males n ga jadi nulis buku tamu. sudah cukup jelas? Oke...langsung kita bahas. Mari kita siapkan file2-nya :
database
create database db_gb ;
use db_gb;
create table guestbook (id int unsigned not null primary key auto_increment, nama varchar(50) not null, email varchar(100) not null, pesan text not null);
file koneksi.php
<?php
$host="localhost"; $uname="root"; $pass=""; $db="db_gb";
$koneksi=mysql_connect($host,$uname,$pass);
mysql_select_db($db,$koneksi);
?>
file lihatgb.php
<?php
$queryGb = mysql_query("select * from guestbook");
$jmlGb = mysql_num_rows($queryGb);
if($jmlGb==0)
{
        echo"Data buku tamu masih kosong";
}
else
{
        $queryTampil=mysql_query("select * from guestbook order by id desc");
        echo"<p>DATA BUKU TAMU<p>";
        while($dataGb=mysql_fetch_row($queryTampil))
        {
                echo"<b>$dataGb[1]</b><br>";
                echo"".wordwrap($dataGb[3],85,"<br>",1)." ";
                echo"<hr width=50% align=left>";
        }
}
?>
file gb.php
<?php
include'koneksi.php';
if(isset($_POST['kirim']) && ($_POST['kirim']=='Kirim'))
{
        $nama=trim(strip_tags($_POST['nama']));
        $email=trim(strip_tags($_POST['email']));
        $pesan=trim(strip_tags($_POST['pesan']));
        //validasi form
        if($nama=='')
                $error1= "<font color=red>&nbsp;&nbsp;&laquo; Nama belum diisi</font><br>";
        if($email=='')
                $error2= "<font color=red>&nbsp;&nbsp;&laquo; Email belum diisi</font><br>";
        if($pesan=='')
                $error3= "<font color=red>&nbsp;&nbsp;&laquo; Pesan belum diisi</font><br>";
        if($email!='')
        {
                $polaemail = "^.+@.+\..+$"; //nyontek tutorial validasi email yg ditulis b_scorpio :)
                $cek=eregi($polaemail,$email);
                if(!$cek)
                {
                        $error4="<font color=red>&nbsp;&nbsp;&laquo; Pola email salah</font>";
                }
        }
        //jika semua data valid
        if(($nama!='') && ($email!='') && $cek && ($pesan!=''))
        {
                //simpan data buku tamu
                $queryAddGb=mysql_query("insert into guestbook
                values(NULL,'$nama','$email','$pesan')");
                if($queryAddGb)   //jika query simpan buku tamu berhasil
                {
                        //tampilkan pesan berhasil
                        echo"<font color=red><b>Guestbook berhasil disimpan</b></font>";
                        echo"<meta http-equiv=\"refresh\" content=\"2; url=./gb.php\">";
                        exit;
                }
                else      //jika query gagal
                {
                        //tampilkan pesan gagal
                        echo"<font color=red><b>Data gagal disimpan</b></font>";
                        echo"<meta http-equiv=\"refresh\" content=\"10; url=./gb.html\">";
                        exit;
                }
        }
        if(isset($error1) || isset($error2) || isset($error3) || isset($error4))
        {
                //tangkap variabel post untuk menampilkan kembali data yang sudah diisi pada form
                $ex_nama=trim(strip_tags($_POST['nama']));
                $ex_email=trim(strip_tags($_POST['email']));
                $ex_pesan=trim(strip_tags($_POST['pesan']));
        }
}
include'lihatgb.php';
//semua value variabel diset kosong jika belum diisi
if(empty($ex_nama))
{
        $ex_nama='';
}
if(empty($ex_email))
{
        $ex_email='';
}
if(empty($ex_pesan))
{
        $ex_pesan='';
}
?>
<p><br><br>FORM BUKU TAMU
<form method="post" action="">
        Nama *<br><input type="text" name="nama" size="34" value="<?php echo $ex_nama;?>"><?php
        if(isset($error1)) //jika data nama kosong
        {
                echo $error1;    //tampilkan pesan di samping textbox nama
        }
        ?><br>
        Email *<br><input type="text" name="email" size="34" value="<?php echo $ex_email;?>"><?php
        if(isset($error2)) //jika data email kosong
        {
                echo $error2; //tampilkan pesan d isamping textbox email
        }
        if(isset($error4))   //jika data email tidak sesuai dengan pola email
        {
                echo $error4;  //tampilkan pesan di samping textbox email
        }
        ?><br>
        Pesan *<br><textarea name="pesan" rows="8" cols="40"><?php echo $ex_pesan;?></textarea><?php
        if(isset($error3))   //jika data pesan kosong
        {
                echo $error3;   //tampilkan pesan di samping textarea pesan
        }
        ?>
        <br>*) Wajib diisi <br>
        <input type="reset" value="Reset" name="kosongkan">
        <input type="submit" value="Kirim" name="kirim">
</form>
Mari dicoba  :
Jalankan file gb.php
Coba isi beberapa data, misal :
data nama : Bolang  
data  pesan: Aku senang sekali mengunjungi ilmuwebsite.com, karena disini aku bisa belajar web         programming. Untuk para staf, cayoo...jangan pernah bosan berbagi ilmu, agar semakin banyak anak2 bangsa ini yang pinter web programming. Selalu ditunggu artikel2 barunya, n....tetap semangatttttt!!!

Lalu klik Kirim
Apa yang terjadi? Si Bolang ini lupa ga masukin data email. Alhasil proses simpan buku tamu ditolak karana data email wajib diisi.
Disinilah topik bahasan artikel ini berguna. Yuppp....karena variabel yang sudah diisi telah ditangkap pak polisi, eh...salah, maksudnya ditangkap oleh variabel ex_nama dan ex_pesan, maka ketika form buku tamu ditampilkan kembali, data2 yang sudah diisi tidak kosong tapi sudah terisi oleh data yg sebelumnya sudah dimasukkan. Jadi Si Bolang tinggal mengisi data email saja.

Coba masukkan data email : bolang@yahoo, lalu klik Kirim
Aduh..aduhhhh...Si Bolang ini orangnya kurang teliti sama kaya Phii. Jadi ketika disimpan, lagi2 proses ditolak, karena pola email tidak sesuai dengan pola yang sudah ditentukan.
Kali ini variabel yang ditangkap tidak hanya nama dan pesan, tapi juga email. Form yang ditampilkan akan menampilkan data2 yang sudah dimasukkan sebelumnya.

Kali ini Si Bolang tidak akan melakukan kesalahan input lagi. Si Bolang menambahkan .com pada data email, sehingga data email menjadi bolang@yahoo.com. Lalu klik Kirim.
Horeeee....Bolang sukses mengisi form buku tamu.

Script php-nya silahkan donlot disini
Wuah...panjang sekalee artikelnya, udah ah...sampai di sini dulu artikel dari Phii. Jika ada teman2 yang menemukan cara lain silahkan menghubungi phii di flore_ephi@yahoo.co.id atau share di ilmuwebsite.
*) Special thanks 2 --> Aeterna_16
Phii dapet trik ini dari temen Phii yang nicknya aeterna. Makasih udah boleh share ilmunya di ilmuwebsite melalui artikel yang Phii tulis. Salam bwt rekan2 team PKTI, crazy6, aeterna_16, n angel. Woiii...cari proyek lagi yukkkk....udah skarat  nih..hahahah...  
*) Salam bwt smua staff --> Anggi, Al-k, Safril, Fadli, Ivan, Ronny, Dr.emi n smua pengunjung setia ilmuwebsite

 

Sumber dari situs Ilmu Website dalam kategori php kuliah

No comments: