Validasi Form dengan PHP

DiBawah ini akan dijelaskan cara melakukan validasi form dengan PHP. Ada dua hal yang terkait dengan validasi form. Yang pertama adalah melakukan validasi data yang diinputkan ke form, dan yang kedua adalah menampilkan error message jika data yang diinput tidak valid. Di bawah adalah contoh validasi yang simpel, yang hanya mengecek apakah semua data diinput dan tidak kosong

<!-- file simple-validasi.php --->
<?php
    if($_POST){
        $nama = $_POST['nama'];
        $email = $_POST['email'];
        $alamat = $_POST['alamat'];
        $kota = $_POST['kota'];
        $kodePos = $_POST['kode_pos'];
        if(empty($nama) || empty($email) || empty($alamat) || empty($kota) || empty($kodePos)){
            echo '<strong>Data tidak komplit</strong>';
        }else{
            //prosess data
        }
    }
?>
<form name="form-name" method="post" action="">
    <dl>
      <dt>Nama:</dt>
      <dd>
    <input name="nama" id="nama" type="text" />
      </dd>
      <dt>Email:</dt>
      <dd>
    <input name="email" id="email" type="text" />
      </dd>
      <dt>Alamat:</dt>
      <dd>
    <input name="alamat" id="alamat" type="text" />
      </dd>
      <dt>Kota:</dt>
      <dd>
    <input name="kota" id="kota" type="text" />
      </dd>
      <dt>Kode POS:</dt>
      <dd>
    <input name="kode_pos" id="kode_pos" type="text" />
      </dd>
    <dt></dt>
      <dd>
    <input name="submit" id="submit" type="Submit" value="Submit" />
      </dd>
    </dl>
</form>

Jika user tidak memasukkan salah satu data maka akan ditampilkan pesan "Data tidak komplit", seperti di bawah:

Dengan script di atas, setiap kali user lupa memasukan salah satu data maka user harus menginput ulang semua data. Agar data yang sebelumnya diinputkan kembali tampil di form pada saat user melakukan kesalahan, ubah script di atas menjadi :
<?php
    if($_POST){
        $nama = $_POST['nama'];
        $email = $_POST['email'];
        $alamat = $_POST['alamat'];
        $kota = $_POST['kota'];
        $kodePos = $_POST['kode_pos'];
        if(empty($nama) || empty($email) || empty($alamat) || empty($kota) || empty($kodePos)){
            echo '<strong>Data tidak komplit</strong>';
        }else{
            //prosess data
        }
    }
?>
<form name="form-name" method="post" action="">
    <dl>
      <dt>Nama:</dt>
      <dd>
    <input name="nama" id="nama" type="text" value="<?php echo isset($_POST['nama']) ? $_POST['nama'] : '';?>" />
      </dd>
      <dt>Email:</dt>
      <dd>
    <input name="email" id="email" type="text" value="<?php echo isset($_POST['email']) ? $_POST['email'] : '';?>" />
      </dd>
      <dt>Alamat:</dt>
      <dd>
    <input name="alamat" id="alamat" type="text" value="<?php echo isset($_POST['alamat']) ? $_POST['alamat'] : '';?>" />
      </dd>
      <dt>Kota:</dt>
      <dd>
    <input name="kota" id="kota" type="text" value="<?php echo isset($_POST['kota']) ? $_POST['kota'] : '';?>" />
      </dd>
      <dt>Kode POS:</dt>
      <dd>
    <input name="kode_pos" id="kode_pos" type="text" value="<?php echo isset($_POST['kode_pos']) ? $_POST['kode_pos'] : '';?>" />
      </dd>
       <dt></dt>
      <dd>
    <input name="submit" id="submit" type="Submit" value="Submit" />
      </dd>
    </dl>
</form>

Script diubah pada line 19, 23, 27, 31, 35 dengan menambahkan attribute value di masing masing text field yang diisi dengan nilai form sebelumnya. Penampilan error message juga bisa diubah menjadi lebih manis dan lebih user friendly seperti di bawah:
  Ubahlah script di atas menjadi:
<?php
    if($_POST){
        $nama = $_POST['nama'];
        $email = $_POST['email'];
        $alamat = $_POST['alamat'];
        $kota = $_POST['kota'];
        $kodePos = $_POST['kode_pos'];
 $error = array();
        if(empty($nama)){
   $error['nama'] = 'Nama tidak boleh kosong';
        }
 if(empty($email)){
   $error['email'] = 'Email tidak boleh kosong';
 }
 if(empty($alamat)){
   $error['alamat'] = 'Alamat tidak boleh kosong';
 }
 if(empty($kota)){
   $error['kota'] = 'Kota tidak boleh kosong';
 }
 if(empty($kodePos)){
   $error['kode_pos'] = 'Kode pos tidak boleh kosong';
 }
 if(empty($error)){
            //prosess data
        }
    }
?>
<form name="form-name" method="post" action="">
    <dl>
      <dt>Nama:</dt>
      <dd>
 <input name="nama" id="nama" type="text" value="<?php echo isset($_POST['nama']) ? $_POST['nama'] : '';?>" />
 <div style="color:red"><?php echo isset($error['nama']) ? $error['nama'] : '';?></div>
      </dd>
      <dt>Email:</dt>
      <dd>
 <input name="email" id="email" type="text" value="<?php echo isset($_POST['email']) ? $_POST['email'] : '';?>" />
 <div style="color:red"><?php echo isset($error['email']) ? $error['email'] : '';?></div>
      </dd>
      <dt>Alamat:</dt>
      <dd>
 <input name="alamat" id="alamat" type="text" value="<?php echo isset($_POST['alamat']) ? $_POST['alamat'] : '';?>" />
 <div style="color:red"><?php echo isset($error['alamat']) ? $error['alamat'] : '';?></div>
      </dd>
      <dt>Kota:</dt>
      <dd>
 <input name="kota" id="kota" type="text" value="<?php echo isset($_POST['kota']) ? $_POST['kota'] : '';?>" />
 <div style="color:red"><?php echo isset($error['kota']) ? $error['kota'] : '';?></div>
      </dd>
      <dt>Kode POS:</dt>
      <dd>
 <input name="kode_pos" id="kode_pos" type="text" value="<?php echo isset($_POST['kode_pos']) ? $_POST['kode_pos'] : '';?>" />
 <div style="color:red"><?php echo isset($error['kode_pos']) ? $error['kode_pos'] : '';?></div>
      </dd>
      <dt></dt>
      <dd>
 <input name="submit" id="submit" type="Submit" value="Submit" />
      </dd>
    </dl>
</form>

selamat mancoba....
Sumber:Mphp turoturial.





0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More