我试图找到一种更智能的方法来验证我的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; ?>">
答案 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;
}
}
}