使用数组进行验证

时间:2015-06-02 12:03:56

标签: php arrays validation

我试图找到一种更智能的方法来验证我的PHP输入。如果数组找到一个空字段,则必须向该数组添加一个新元素并显示错误消息。

到目前为止,我还没有成功。

背后的代码

$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 type="text" class="form-control" name="produktnavn" value="<?php echo $produktnavn; ?>">

1 个答案:

答案 0 :(得分:1)

代码以$felter = array();开头,初始化一个空数组。

然后,在不更改数组本身的情况下,您正在检查$felter

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

您正在尝试迭代未插入任何元素的数组。逻辑语句if( !empty ($felter))也不会按预期工作。

作为测试,在检查之前!为空,在$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;
                }
            }             
     }