Bagian 22. Lebih Jauh Bekerja dengan Form


Validasi Hasil Input


Di bagian ini saya akan jelaskan bagaimana cara seorang web developer itu mengecek hasil inputan yang di lakukan oleh user, sebagai contohnya misalkan user akan melakukan pendaftaran sebagai mahasiswa baru, namun form di bagian nomor teleponnya itu di kosongkan, sedangkan syarat untuk mendaftar adalah, bagian nomor telepon itu harus di isi, nah bagaimana menangani ini sehingga nanti
jika ada user yang mengosongkan nomor telepon nya si user tersebut diperintahkan kembali untuk mengisi form bagian nomor telepon.

Atau contoh lainnya misalkan ketika user menginputkan namanya pada nomor telepon, hal ini tentu saja salah, namun bagaimana cara untuk menangani ini, jadi ketika user memasukkan nama pada inputan nomor telepon akan ditolak dan diberikan warning, jika yang diinputkan itu salah. Saya akan coba jelaskan contoh kasus yang pertama, ketika kondisi si user itu mengosongkan salah satu bagian
form. untuk mengetahui kosong atau tidaknya suatu variable itu diwakilkan dengan fungsi !empty()

Kami akan coba jelaskan contoh kasusnya, pertama kita buat form nya terlebih dahulu :




<html>
<head><title>Form Insert</title></head>
<body>
<form action="insert.php" method="POST">
<table border='0' width='35%' cellpadding='2' cellspacing='2' align='center'>
<caption><h2>Formulir Pendaftaran Mahasiswa Baru</h2><p><?php echo
$warning ; ?></p>
</caption>
<tr><td>Nama</td><td><input type="text" name="nama" size="30"
maxlength="50"/></td></tr>
<tr><td>Jenis Kelamin</td><td><input type="radio" name="jenis_kelamin"
value="pria"/><label for="jenis_kelamin">
Pria</label>
<input type="radio" name="jenis_kelamin" value="wanita"/><label
for="jenis_kelamin">Wanita</label>
</td></tr>
<tr><td>Alamat</td><td><textarea name="alamat" cols="30"
rows="4"></textarea></td></tr>
<tr><td>No Telepon</td><td><input type="text" name="telepon" size="30"
maxlength="50"/></td></tr>
<tr><td></td><td><input type="submit" name="kirim"
value="Daftar!"/></td></tr>
</table>
</form>
</body>
</html>



Ini form yang terdiri dari nama, jenis kelamin, alamat, dan nomor telepon. Kita lihat di browser selanjutnya kita akan buat untuk bagian validasinya, yakni file insert.php.


Priview
Form Insert

Formulir Pendaftaran Mahasiswa Baru


Nama
Jenis Kelamin
Alamat
No Telepon




<?php
// jika user mengosongkan nama
// ini juga berlaku jika anda mengosongkan semuanya ...
// yang pertama kali di cek adalah bagian ini ...
if (empty($_POST['nama']))
{
echo "Anda mengosongkan Nama...";
}
// jika user mengosongkan jenis kelamin
else if (empty($_POST['jenis_kelamin']))
{
echo "Anda mengosongkan jenis kelamin...";
}
// jika user mengosongkan alamat
else if (empty($_POST['alamat']))
{
echo "Anda mengosongkan alamat";
}
// ini berarti mengosongkan nomor telepon
else if (empty($_POST['telepon']))
{
echo "Anda mengosongkan no telepon ... ";
}
else
{
echo "Semua terisi dan proses input ke database bisa di lakukan disini ... ";
}
?>



lalu kita cek di browser dengan mengisi formnya, dan kita klik submit, dan apa yang terjadi ...

Memfilter Format yang salah

Contoh dalam memfilter format yang salah bisa kita temui ketika kita mengisi form registrasi di bagian inputan untuk email, ketika kita salah mengetik format email dengan salah, misalnya namaemail@yahoocom tanpa tanda titik setelah yahoo, maka akan ada warning jika format email yang kita masukkan itu salah, ada juga contoh kasus lain misalnya ketika kita salah mengisi tanggal lahirnya, ada situs yang memberikan format seperti ini 24-01-1987, namun kemudian kita mengisinya
dengan 24-Januari-1987, maka akan ada warning jika format yang di isi itu salah.

Solusinya adalah kita menggunakan regular expression, saya hanya menjelaskan sedikit saja regular expression sesuai dengan contoh kasus, karena untuk regular expression itu sendiri butuh satu bahasan terperinci saking banyaknya sub sub dalam regular expression.

Regular expression merupakan suatu pola yang dapat mencocokan kalimat sesuai dengan format yang kita inginkan. Sebelum beranjak ke regular expression kita akan coba terlebih dahulu membuat form dan mengecek format data yang di inputkan, apakah data yang diinput itu berupa angka atau numeric, huruf atau string, apakah data yang di input itu sebuah array?? Kita buat form terlebih dahulu :



<html>
<head><title>Form Check Input</title></head>
<body>
<form action="check_input.php" method="POST">
<table border='0' width='35%' cellpadding='2' cellspacing='2' align='center'>
<caption><h2>Formulir Pendaftaran Mahasiswa Baru</h2><p><?php echo
$warning ; ?></p>
</caption>
<!-- di sini saya coba membuat 6 inputan, yang isinya ada yang terdiri dari huruf saja
dan ada yang terdiri angka saja -->
<tr><td>Nama</td><td><input type="text" name="nama" size="30"
maxlength="50"/></td></tr>
<tr><td>Jenis Kelamin</td><td><input type="radio" name="jenis_kelamin"
value="pria"/><label for="jenis_kelamin">Pria</label>
<input type="radio" name="jenis_kelamin" value="wanita"/><label
for="jenis_kelamin">Wanita</label>
</td></tr>
<tr><td>Tanggal Lahir</td><td><input type="text" name="tanggal_lahir" size="30"
maxlength="50"/></td></tr>
<tr><td>Alamat</td><td><textarea name="alamat" cols="30"
rows="4"></textarea></td></tr>
<tr><td>No Telepon</td><td><input type="text" name="telepon" size="30"
maxlength="50"/></td></tr>
<tr><td></td><td><input type="submit" name="kirim"
value="Daftar!"/></td></tr>
</table>
</form>
</body>
</html>



Kemudian selanjutnya kita akan membuat satu buah file yang dapat mengecek, format data yang diinputkan tersebut apakah angka saja atau huruf saja atau terdapat kedua-duanya. Hal ini menentukan untuk proses selanjutnya. Kita buat satu halaman dengan nama check_input.php



Priview
Form Check Input

Formulir Pendaftaran Mahasiswa Baru


Nama
Jenis Kelamin
Tanggal Lahir
Alamat
No Telepon



<?php
// kita cuma akan mengambil sampel untuk nama dan telepon saja...
// selebihnya bisa anda praktikan nanti
$nama = $_POST['nama'];
$telepon = $_POST['telepon'];
// jika nama yang di inputkan itu terdiri dari angka saja
if (is_numeric($nama))
{
// maka berikan warning jika yang di masukkan itu bertipe numeric...
echo "<strong>Nama yang anda masukkan bertipe numeric</strong>,
silahkan isi kembali dengan string...<br />";
}
// dan apabila nama yang diinputkan itu bertipe string
else if (is_string($nama))
{
echo "<strong>Nama yang anda masukkan bertipe string </strong>
 <br />";
}
else
{
echo "Anda harus memasukkan nama dalam format string...<br />";
}
// begitu juga dengan nomor telepon, apabila yang diinputkan itu
// bertipe numeric
if (is_numeric($telepon))
{
// maka ...
echo "<strong>Nomor Telepon</strong> yang anda masukkan
<strong> bertipe numeric</strong><br />";
}
else
{
// maka
echo "Anda harus memasukkan nama dalam format numeric...<br />";
}
?>



Regular expression


Penggunaan regular expresion sebagai contohnya di temui dalam pengisian tanggal lahir, mencocokan format tanggal lahir, sehingga inputan yang di masukkan oleh user nanti bisa seragam mengikuti format yang benar. seperti yang saya katakan sebelumnya, misalkan format yang kita inginkan ketika user menginput tanggal adalah 24-01-1987, ketika ada user yang menginput 24-Januari-1987 maka akan terdapat peringatan jika format yang di masukkan itu adalah salah. 

Solusinya adalah kita menggunakan regular expression, pertama kita akan buat formnya terlebih dahulu ...




<html>
<head><title>Form Check Input</title></head>
<body>
<form action="regex1.php" method="POST">
<table border='0' width='35%' cellpadding='2' cellspacing='2' align='center'>
<caption><h2>Formulir Pendaftaran Mahasiswa Baru</h2><p><?php echo
$warning ; ?></p>
</caption>
<tr><td>Tanggal Lahir</td><td><input type="text" name="tanggal_lahir" size="30"
maxlength="50"/></td></tr>
<tr><td></td><td><input type="submit" name="kirim"
value="Daftar!"/></td></tr>
</table>
</form>
</body>
</html>
kemudian file regex1.php
<?php
// kita ambil variable yang di ambil dari form inputan, yakni
// tanggallahir
$tanggallahir = $_POST['tanggal_lahir'];
// kemudian kita buat pola dari tanggal lahir
// apabila kita lihat di sini
// ([0-9]{2})-([0-9]{2})-([0-9]{4})
// ([0-9]{2})
// kita tahu bahwa tanggal itu memiliki 2 digit yang isinya terdiri
// dari angka 0 - 9
// ([0-9]{2})
// kita tahu bahwa bulan itu memiliki 2 digit yang isinya terdiri dari // angka 0 - 9
// ([0-9]{4})
// dan untuk tahun itu memiliki 4 digit angka yang terdiri dari angka 0
// - 9
// dan tanda -
// itu membuat tanggalnya nanti memiliki bentuk seperti ini ... xx-xx-
// xxxx
if (!ereg ("([0-9]{2})-([0-9]{2})-([0-9]{4})", $tanggallahir, $bagiantanggal))
{
// perintah !ereg digunakan untuk mencocokan tanggallahir
// apakah sudah sesuai dengan formatnya
// yang ditentukan
// dan variable $bagiantanggal ini digunakan untuk
// memetakan tanggal lahir yang di masukkan ...
echo "Format yang anda masukkan salah ...";
}
else
{
// sehingga hasilnya nanti seperti ini ...
echo "Tanggal : $bagiantanggal[1]<br />";
echo "Bulan : $bagiantanggal[2]<br />";
echo "Tahun : $bagiantanggal[3]<br />";
}
?>
Kita coba lakukan testing di browser ... dan hasilnya ... begitu juga dengan format
email kita buat terlebih dahulu formnya
<html>
<head><title>Form Check Input</title></head>
<body>
<form action="regex2.php" method="POST">
<table border='0' width='35%' cellpadding='2' cellspacing='2' align='center'>
<caption><h2>Formulir Pendaftaran Mahasiswa Baru</h2><p><?php echo
$warning ; ?></p>
</caption>
<tr><td>Email</td><td><input type="text" name="email" size="30"
maxlength="50"/></td></tr>
<tr><td></td><td><input type="submit" name="kirim"
value="Daftar!"/></td></tr>
</table>
</form>
</body>
</html>
Kemudian kita proses email yang di masukkan dalam file regex2.php ...
<?php
$email = $_POST['email'];
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",
$email))
{
echo "Alamat Email anda Salah ...";
}
else
{
echo "Alamat Email yang anda masukkan adalah $email";
}
?>


anda bisa mendalami regex lebih dalam dengan membaca tutorial-tutorial yang saya bawakan di ilmuwebsite.com di dalam file latihan saya menyediakan satu file berisi 15 pola regex yang sering digunakan oleh web developer. dan tentunya menggunakan php.

Priview 1
Form Check Input

Formulir Pendaftaran Mahasiswa Baru


Tanggal Lahir
Priview 2
Form Check Input

Formulir Pendaftaran Mahasiswa Baru


Email

Mengupload file

Dalam pembuatan aplikasi berbasis web, mengupload file merupakan sesuatu yang sangat di perlukan dalam php, syntax untuk mengupload file pun sudah di sediakan, ada sedikit perbedaan antara form yang biasa dengan form yang digunakan untuk mengupload file. Terdapat satu atribut tambahan untuk form tersebut, kita coba akan buat terlebih dahulu form yang digunakan untuk mengupload file nantinya ...




<html>
<head>
<title>Form Upload</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<p>
<!-- MAX_FILE_SIZE digunakan untuk membatasi size/ukuran file yang akan
di upload -->
<input type="hidden" name="MAX_FILE_SIZE" value="102400" />
<input type="file" name="file" /><br/>
<input type="submit" value="upload!" />
</p>
</form>
</body>
</html>



Kita coba lihat dulu di browser. Oke, selanjutnya kita akan membuat sebuah file untuk menerima inputan dari form upload tersebut untuk selanjutnya di letakkan di server dalam folder yang terpilih. dalam hal ini saya meletekkannya dalam folder upload, namun terlebih dahulu kita buat 1 buah folder dengan nama upload.

Priview
Form Upload



Setelah beres kita coba buat script untuk menyimpan file yang di upload ke dalam folder upload tersebut :




<?php
// ketika filenya dikirim ...
if ( isset( $_FILES['file'] ) ) {
// file yang dikirim memiliki atribut sesuai dengan nama input file
// pada formnya
// tadi saya membuat input file upload dengan nama file
// sehingga dalam mengakses nama file tersebut
// kita cukup memanggil $_FILES['file']['nama']
// seperti ini
 echo "name: ". $_FILES['file']['name']."<br />";
// begitu juga jika ingin mengetahui atribut yang lain seperti sizenya,
// tmp_namenya,
// type data yang di upload...
// dan lain lain sebagainya ..
 echo "size: ". $_FILES['file']['size']." bytes<br />";
 echo "temp name: ".$_FILES['file']['tmp_name']."<br />";
 echo "type: ". $_FILES['file']['type']."<br />";
 echo "error: ". $_FILES['file']['error']."<br />";
// lakukan pemilihan file
// disini hanya dapat menerima file dengan tipe image/jpeg
// atau gmabar ...
// jika gambar yang di upload itu bertipe jpep atau gambar
 if ( $_FILES['file']['type'] == "image/jpeg" ) {
// kemudian ambil letak file temporary,
// ini dilakukan karena ketika file itu di upload
// server php dalam hal ini apache secara otomatis meletakkannya
// sebagai temporary file
 $source = $_FILES['file']['tmp_name'];
// kemudian buat target atau akan di letakkan di mana file tersebut
 $target = "./upload/".$_FILES['file']['name'];
// setelah file temporarinya sudah di definisikan
// dan kemudian file tujuan akhir, atau akan di letakkan di mana file
// yang akan di upload tadi
// selanjutnya adalah memindahkan file temporari tersebut ke dalam
// folder tujuan, yakni folder upload
 move_uploaded_file( $source, $target );
// untuk mendapatkan ukuran atau size dari image yang di upload ...
 $size = getImageSize( $target );
// kemudian tampilkan image yang telah di upload tersebut ke dalam
// halaman yang saat ini di akses ...
// dalam hal ini file tersebut adalah upload.php
 $imageupload = "<p><img width=\"$size[0]\" height=\"$size[1]\" " .
"src=\"$target\" alt=\"uploaded image\" /></p>";
 echo $imageupload;
 }
}
?>



Oke, langsung saja kita tes di browser ... dan hasilnya adalah ... file yang di upload akan secara otomatis di kopikan kedalam folder upload, ini bisa anda lihat pada direktori

c:\xampp\htdocs\xxx\upload

Oke setelah semua selesai anda bisa coba untuk mengulangnya kembali agar anda semakin terbiasa dan mahir nantinya ...


Selanjutnya saya akan bahas bab 8 mengenai pengiriman email menggunakan php

Bagian 22. Lebih Jauh Bekerja dengan Form Bagian 22. Lebih Jauh Bekerja dengan Form Reviewed by Akief Takaful on 11:56 PM Rating: 5

No comments:

Powered by Blogger.