Validation Using Arrays

I am trying to find a smarter way to check my inputs with PHP. If the array finds an empty field, it should add a new element to the array and display an error message.

So far I have failed.

The code

$felter = array();

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

        $produktnavn = $_POST['produktnavn'];
        $kategori = $_POST['kategori'];

        if( !empty( $felter ) ) {

            foreach ($felter as $felt) {
                if ($felter == '') {
                    $fejl = true;
                }
            }            

        }

        else {

            $sql = "UPDATE produkt SET produkt_navn = '$produktnavn', fk_kategori_id = '$kategori' WHERE produkt_id=$id";
            mysqli_query($db, $sql);

            echo "Produktet blev opdateret";

        }

Input form

<input type="text" class="form-control" name="produktnavn" value="<?php echo $produktnavn; ?>">
+4
source share
1 answer

The code begins with $felter = array();, which initializes an empty array.

Then, without changing the array itself, you check for nonemptiness $felter

if( !empty( $felter ) ) {
            foreach ($felter as $felt) {
                if ($felter == '') {
                    $fejl = true;
                }
            }             
        }

You are trying to iterate over an array that has not received any elements. And the boolean expression will if( !empty ($felter))also not work as expected.

, ! , - $felter[] = 'Test word';, ... ( , if(count($felter)) { foreach ($felter as $felt) { if ($felt == '')

$felter = array();
$felter[] = 'Test word';

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

    $produktnavn = $_POST['produktnavn'];
    $kategori = $_POST['kategori'];

    if( count( $felter ) ) {
            foreach ($felter as $felt) {
                if ($felt == '') {
                    $fejl = true;
                }
            }             
     }
+1

All Articles