Сообщение об ошибке для обязательного поля, всегда показывающего

У меня есть ошибка для обязательного поля, но даже когда она была заполнена, она показывает мое сообщение об ошибке, может быть, мне нужен оператор else, но не совсем уверен.

session_start(); // this sets variables in the session $id = $_SESSION['user_id']; foreach($_POST as $key => $value) $link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection."); $err = array(); $result = mysql_query("SELECT `id` FROM users WHERE `banned` = '0'") or die (mysql_error()); if(empty($_SESSION['$user_id'])) // user not logged in; redirect to somewhere else if (!empty($_POST['doThesis']) && $_POST['doThesis'] == 'Save') { $result = mysql_query("SELECT `id` FROM users WHERE `banned` = '0'") or die (mysql_error()); list($id) = mysql_fetch_row($result); if(empty($abstract)) { $err[] = "ERROR - Enter Abstract"; //header("Location: thesis.php?msg=$err[0]"); } /// Automatically collects the hostname or domain like example.com) $host = $_SERVER['HTTP_HOST']; $host_upper = strtoupper($host); $path = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); if(empty($err)) { for($i = 0; $i < count($_POST["other"]); $i++) { $thesis_Name = mysql_real_escape_string($_POST['thesis_Name'][$i]); $abstract = mysql_real_escape_string($_POST['abstract'][$i]); $sql_insert = "INSERT into `thesis` (`user_id`,`thesis_Name`,`abstract` ) VALUES ('$id','$thesis_Name','$abstract' "; mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error()); } header("location: myaccount.php?id=" . $_SESSION['user_id']. ""); } 

} Очевидно, что второй заголовок должен идти, когда данные находятся в поле. Если я включаю первый заголовок, сообщение об ошибке находится в строке URL, где, когда я не включаю строку заголовка, она находится на странице (где это должно быть).

Я имею в виду, что когда я получаю сообщение об ошибке, это ошибка, которую я установил, «вводить абстрактный» отображается постоянно, даже когда что-то вводится.