PHPのチュートリアルを行っています。私はCRUDレッスンの更新セクションにいて、検証スクリプトに取り組んでいます。私はコードに正確に従っています...私は思いますが、それでも正しく機能していません。問題は次のとおりです。[送信]をクリックしてメニュー名フィールドを空にして検証をテストしようとすると、エラーなしで処理され、空のリスト項目でナビゲーションが更新されますか?私はコードを調べましたが、すべて正しいようですが、これは非常に新しいため、問題は簡単に見落とされます。
コードは次のとおりです。
if(isset($_POST['submit'])) {
$errors = array();
$required_fields = array('menu_name', 'position', 'visible');
foreach($required_fields as $fieldname) {
if(!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0) ) {
$errors[] = $fieldname;
}
}
if(empty($errors)) {
//Perform Update
$id = mysql_prep($_GET['subj']);
$menu_name = mysql_prep($_POST['menu_name']);
$position = mysql_prep($_POST['position']);
$visible = mysql_prep($_POST['visible']);
$query = "UPDATE subjects SET
menu_name = '{$menu_name}',
position = {$position},
visible = {$visible} WHERE id = {$id}";
$result = mysql_query($query, $connection);
if(mysql_affected_rows() == 1){
// success
$message = "Subject was sucessfully updated";
}else{
$message = "The subject update failed.";
$message .= "<br />" . mysql_error();
}
}else{
//error occured
$message = "There were " . count($errors) . " errors in the form.";
}
} // end if(isset($_POST['submit']) )
?>
そして本文からのコード:
<h2>Edit Subject: <?php echo $sel_subject['menu_name']; ?></h2>
<?php
if(!empty($message)){
echo "<p class=\"message\">" . $message . "</p>";
}
?>
<?php
if(!empty($errors)){
echo "<p class=\"errors\">";
echo "Please review the folowing fields: <br />";
foreach($errors as $error){
echo "-" . $error . "</p>";
}
}
?>
(empty($ _ POST [$ fieldname])を(empty($ _ POST ['menu_name']))に変更すると、エラーが発生しますが、それらは正しい位置と表示フィールド用です...?ありますか?見えない文字が省略されています。これらのばかげた種類の間違いを防ぐために、ほとんどコピーアンドペーストを行っています。注:位置と表示の検証は機能することに注意してください...私は...それらを残すことはできないのでとにかくフィールドが空白になっている方法を教えてください...
どんな助けでも大歓迎です。