Memfilter Format yang salah

Bookmark and Share
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 keduaduanya.
Hal ini menentukan untuk proses selanjutnya. Kita buat satu halaman dengan
nama check_input.php
<?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.
Untuk ebook lengkap belajar PHP silahkan anda download disini dan untuk pendukung buat latihan ngoprek-ngoprek PHP bisa di download disini

{ 0 comments... Views All / Send Comment! }

Post a Comment