Het gaat om de volgende code:
<?php
if (isset($_POST['submit'])) {
$errors = array();
// form validation
$required_fields = array('menu_name', 'position', 'visible', 'content');
foreach($required_fields as $fieldname) {
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) {
$errors[] = $fieldname;
}
}
$fields_with_lengths = array('menu_name' => 30);
foreach($fields_with_lengths as $fieldname => $maxlength) {
if (strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) {
$errors[] = $fieldname;
}
}
if (empty($errors)) {
// perform update
$id = mysql_prep($_GET['page']);
$menu_name = mysql_prep($_POST['menu_name']);
$position = mysql_prep($_POST['position']);
$visible = mysql_prep($_POST['visible']);
$content = mysql_prep($_POST['content']);
$query = "UPDATE pages SET
menu_name = '{$menu_name}',
position = {$position},
visible = {$visible},
content = '{$content}'
WHERE id = {$id}";
$result = mysql_query($query, $connection);
if (mysql_affected_rows() == 1) {
// success
$message = "De pagina is succesvol geupdate.";
} else {
// failed
$message = "De pagina update was niet succesvol!";
$message = "<br/>" . mysql_error();
}
} else {
// Errors occurred
$message = "Er zijn " . count($errors) . " fouten in het formulier!";
}
}
?>
De code staat op een pagina met een form (de actie van de form is dezelfde pagina, dus een "in-page-code" in feite).
Ik heb een array gemaakt van de diverse velden welke vereist zijn (een textbox, select option, radio en een textarea), er wordt gecontroleerd of deze velden een value bevatten, niet leeg of 0 zijn.
Bij het laden van de pagina, worden de gegevens uit de database gehaald (indien beschikbaar) en de velden ingevuld. Als ik nu bijvoorbeeld de tekst die in het veld menu_name staat verwijder en op submit klik, dan wordt de record gewoon geüpdatet, maar eigenlijk moet er een error terugkomen dat het veld menu_name leeg is.
Ik heb de code diverse keren bekeken, maar kan niks vinden. Waar zit de fout?
Alvast bedankt voor enige hulp.