#askk_mastah cara buat fungsi buat valdiasi dari ketentuan yang kita bikin sendiri

cara buat validasi pake perulangannya gimana sih ya.. biar yang input username di validasi sama ketentuan yang kita buat yaitu rules username dan password sama yang password

       $data = array(
        'username' => $_POST['username'],
        'password' => $_POST['password']
      );

      $rules = array(
        'username' => array(
                        'required' => true,
                        'min' => 4,
                        'max' => 6
                      ),
        'password' => array(
                        'required' => true,
                        'min' => 5
                      )
      );

      $validation = check($rules, $data);
avatar cynos
@cynos

13 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

3 Jawaban:

Jawaban Terpilih

Validasi.php

<?php
// notice biar gak ganggu dulu hehe
error_reporting(E_ALL ^ E_NOTICE);

// variabel penampung error
$listError = array();

//fungsi check (urutannya ubah bro) check($data, $rules) ... lebih mudah diingat
function check($data = array(), $rules = array()) {

    //harus global biar bisa dibaca oleh function
    global $listError;

    /* DOKUMENTASI HEHEHE

    foreach pertama => $rules mengeluarkan attribute validasi
    $fields = 'username', 'password'
    $value  = array('required', 'min', 'max')

    foreach kedua => $values mengeluarkan NILAI/syarat aturan validasi
    $prop = 'required','min','max' => (attribute yg harus dipenuhi)
    $propValue = 'true', 4, 5 => (syarat) contoh: required => true (artinya harus diisi)

    */

    foreach ($rules as $fields => $value) {
        foreach ($value as $prop => $propValue) {
            switch ($prop) {
                case 'required':

                    // if(empty($data['username'])) {}
                    if(empty($data[$fields])) {
                        // ketika data tidak sesuai syarat, maka kita tambah error ke var $listError
                        $listError[] = $fields . " Harus Diisi";
                    }
                    break;
                case 'min':
                    // minimum akan dicek jika field kosong bila tidak ndk perlu ditampilkan
                    // kan ngisi aja belum hehe...
                    if(!empty($data[$fields]) && strlen($data[$fields]) < $propValue) {
                        $listError[] = $fields . " Minimal " . $propValue . " Karakter";
                    }
                    break;
                case 'max':
                    if(!empty($data[$fields]) && strlen($data[$fields]) > $propValue) {
                        $listError[] = $fields . " Maximal " . $propValue . " Karakter";
                    }
                    break;
            }
        }
    }

    // hasilnyoo jadi kalau var $listError ada isinya (ngk kosong)
    // maka kembalikan nilai errornya => return $listError
    // jika valid return 0..

    if(!empty($listError)) {
        return $listError;
    }else{
        return 0;
    }

}

if(isset($_POST['submit'])) {

    $data = array(
        'username' => $_POST['username'],
        'password' => $_POST['password']
      );

    $rules = array(
    'username' => array(
                    'required' => true,
                    'min' => 4,
                    'max' => 6
                  ),
    'password' => array(
                    'required' => true,
                    'min' => 5
                  )
    );

    // simpan hasil return dari fungsi check() kedalam var $validation
    // jangan lupa dibalik urutannya

    $validation = check($data ,$rules);

    // cek nilai $validasi = jika kosong artinya tidak ada error
    if(empty($validation)) {
        echo "Data Valid ... Lanjutkan (^_^)";
    }else{
        foreach ($validation as $error) {
            echo $error . "<br>";
        }
    }

}

// NB: nilai key pada $data, dan $rules harus sama selebihnya bisa disesuaikan sesuai kebutuhan

?>

<form action="" method="POST">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" name="submit">
</form>

Dijelaskan didetail biar yg belum tahu bisa paham juga..

Semoga Bermanfaat dan Membantu hehe (^_^)

avatar ciloxz
@ciloxz

284 Kontribusi 139 Poin

Dipost 6 tahun yang lalu

@ciloxz mantaaaapppppppppppppppppp gan, makasih bantuannya ^_^

avatar cynos
@cynos

13 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

@cynos ,, welcome makasih coto nya hehe,,, laper kebetulan :D

avatar ciloxz
@ciloxz

284 Kontribusi 139 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban