При ообновлении данных из mysql не работает верификация (обновление данных в CRUD)
У меня вопрос. Цель данной страницы заключается в том чтобы ввести номер студента, найти данный номер в базе данных и если номер сучествует то все данные данного студента появляются в форме где их можно изменить. Все работает, при вводе номера появляется форма со всеми данными, их можно изменить и все при нажатии обновляается. Цель в том чтобы при вводе новых данный проводилась их верификация и если все проходит то выскакивает соответствуюшее сообшение, если не проходит то появляется сообшение с ошибками и опять же форма. Код для етого есть и он полностью работает на страницe добавнения нового студента, а вот на странице обновления неработает, возможно я его нетуда вставляю.Подскажите пожалуйста что нужно исправить.
Вот код из mysql_connection отвечаюший за апдейт:
DEFINE('DB_USER', 'root');
DEFINE('DB_PASSWORD', '');
DEFINE('DB_HOST', 'localhost');
DEFINE('DB_NAME', 'students_crud');
//connection
$db_connection = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR
die("Could not connect to MySQL! ". mysqli_connect_error());
mysqli_set_charset($db_connection, 'utf8');
if (isset($_POST['update'])) {
$sNum = $_POST['sNum'];
$fName = $_POST['fName'];
$lName = $_POST['lName'];
$email = $_POST['email'];
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$eircode = $_POST['eir'];
$hNum = $_POST['hNum'];
$mNum = $_POST['mNum'];
$dob = $_POST['dob'];
$gender = $_POST['gender'];
$major = $_POST['major'];
$course = $_POST['course'];
$sMode = $_POST['sMode'];
$start_date = $_POST['start'];
$end_date = $_POST['end'];
mysqli_query($db_connection, "UPDATE student SET student_no = '$sNum', first_name = '$fName', last_name = '$lName', email = '$email', date_of_birth = '$dob',
gender = '$gender', mobile = '$mNum', home_tel = '$hNum', add1 = '$add1',add2 = '$add2',city = '$city',state = '$state',eir = '$eircode', major = '$major', course = '$course',
study_mode = '$sMode', start_date = '$start_date', end_date = '$end_date' WHERE student_no = '$sNum'");
}
А вот полный код из файла update_Student.php:
<?php include('mysql_connect.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<link href="https://fonts.googleapis.com/css?family=Bree+Serif&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato&display=swap" rel="stylesheet">
<script src="https://kit.fontawesome.com/29f1e2c7c5.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<meta charset="UTF-8">
<title>Student's details</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="main_wrap">
<div class="try">
<div class="container upd_container">
<div id='student_expanded_wrap_header'>
<h2>Enter student's number to update:</h2>
</div>
<a href="student_management_system.php"><button type="button" name="back" class="btn mybtn btn-primary ch"><i class="fas fa-home"></i>Back to main page</button></a>
<form id="upd_form" class="get_data" action="update_student.php" method="get">
<div class="row no-gutters mt-3 align-items-center search-wrap">
<div class="col search-bar">
<input class="form-control pr-5" type="search" name="search_student" placeholder="Search by student number">
</div>
<div class="col-auto">
<button type="submit" name="sub" class="btn search-btn text-dark border-0 ml-n5">
<i class="fa fa-search"></i>
</button>
</div>
</div>
</form>
</div>
<?php
if(isset($_GET['search_student'])){
$search = $_GET['search_student'];
// $sNum = $_GET['search_student'];
$trimmedSearch = trim($search);
$query = "SELECT * FROM student WHERE student_no = '$trimmedSearch'";
$result = mysqli_query($db_connection, $query);
if (mysqli_num_rows($result)) {
while($row = mysqli_fetch_array($result)) {
if (!isset($_POST['update'])) {
// Retrieve individual field value
$sNum = $row["student_no"];
$fName = $row['first_name'];
$lName = $row['last_name'];
$email = $row['email'];
$add1 = $row['add1'];
$add2 = $row['add2'];
$city = $row['city'];
$state = $row['state'];
$eircode = $row['eir'];
$hNum = $row['home_tel'];
$mNum = $row['mobile'];
$dob = $row['date_of_birth'];
$gender = $row['gender'];
$major = $row['major'];
$course = $row['course'];
$sMode = $row['study_mode'];
$start_date = $row['start_date'];
$end_date = $row['end_date'];
echo " <form action=\"update_student.php\" method=\"post\" class=\"jumbotron\">
<div class=\"col\">
<input hidden type=\"number\" class=\"form-control\" name=\"sNum\" value='$sNum' placeholder=\"Student number\" required maxlength=\"7\">
</div>
<div class=\"form-row\">
<div class=\"col\">
<input type=\"text\" class=\"form-control\" name=\"fName\" value='$fName' placeholder=\"First name\" pattern=\"[A-Za-z]{1,32}\"
required>
</div>
<div class=\"col\">
<input type=\"text\" class=\"form-control\" name=\"lName\" value='$lName' placeholder=\"Last name\" pattern=\"[A-Za-z]{1,32}\"
required>
</div>
</div>
<br>
<div class=\"form-group\">
<label for=\"inputEmail\">Email</label>
<input type=\"email\" class=\"form-control\" id=\"inputEmail\" name=\"email\" value='$email' placeholder=\"[email protected]\">
</div>
<div class=\"form-group\">
<label for=\"inputAddress\">Address</label>
<input type=\"text\" class=\"form-control\" name=\"add1\" value='$add1' id=\"inputAddress\" placeholder=\"1234 Main St\" required>
</div>
<div class=\"form-group\">
<label for=\"inputAddress2\">Address 2</label>
<input type=\"text\" class=\"form-control\" name=\"add2\" value='$add2' id=\"inputAddress2\"
placeholder=\"Apartment, studio, or floor\" required>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputCity\">City</label>
<input type=\"text\" class=\"form-control\" name=\"city\" value='$city' id=\"inputCity\" placeholder=\"eg. Dublin\"
pattern=\"^[a-zA-Z]+(?:[\s-][a-zA-Z]+)*$\" required maxlength=\"20\">
</div>
<div class=\"form-group col-md-4\">
<label for=\"inputState\">State</label>
<select name=\"state\" id=\"inputState\" value='$state' class=\"form-control\" required>
<option value=\"Co.Dublin\">Co.Dublin</option>
<option value=\"Other\">Other</option>
</select>
</div>
<div class=\"form-group col-md-2\">
<label for=\"inputEirCode\">Eircode</label>
<input type=\"text\" class=\"form-control\" value='$eircode' id=\"inputEirCode\" name=\"eir\">
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputHomeNum\">Home number</label>
<input type=\"number\" name=\"hNum\" value='$hNum' class=\"form-control\" id=\"inputHomeNum\" placeholder=\"eg. 011234567\"
pattern=\"[01][0-9]{7}\" maxlength=\"9\">
</div>
<div class=\"form-group col-md-6\">
<label for=\"inputMobileNum\">Mobile number</label>
<input type=\"number\" name=\"mNum\" value='$mNum' class=\"form-control\" id=\"inputMobileNum\" placeholder=\"eg. 087243525\"
pattern=\"[0-9]{3}[0-9]{7}\" required maxlength=\"10\">
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputDOB\">Date of birth</label>
<input type=\"date\" name=\"dob\" value='$dob' class=\"form-control\" id=\"inputDOB\" required>
</div>
<br>
<div class=\"form-group col-md-6 gen\">
<label for=\"inputGender\">Gender</label>
<select id=\"inputGender\" name=\"gender\" value='$gender' class=\"form-control\" required>
<option selected>Male</option>
<option>Female</option>
</select>
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputMajor\">Major</label>
<select id=\"inputMajor\" name=\"major\" value='$major' class=\"form-control\" required>
<option selected>Computer Science</option>
<option>Business</option>
<option>Engineering</option>
<option>Psychology</option>
<option>Journalism</option>
<option>Arts</option>
<option>Mathematics</option>
<option>Philosophy</option>
<option>Architecture</option>
<option>Biology</option>
<option>Fitness studies</option>
</select>
</div>
<div class=\"form-group col-md-6\">
<label for=\"inputCourse\">Course</label>
<select id=\"inputCourse\" name=\"course\" value='$course' class=\"form-control\" required>
<option selected>BSCH</option>
<option>BSC</option>
<option>BS</option>
<option>BA</option>
<option>MSC</option>
<option>PhD</option>
<option>MA</option>
</select>
</div>
</div>
<div class=\"form-row\">
<div class=\"col\">
<label for=\"inputStudyMode\">Study mode</label>
<select id=\"inputStudyMode\" name=\"sMode\" value='$sMode' class=\"form-control\" required>
<option selected>Full-time</option>
<option>Part-time</option>
</select>
</div>
<div class=\"col\">
<label for=\"inputStartDate\">Start date</label>
<input type=\"date\" name=\"start\" value='$start_date' class=\"form-control\" id=\"inputStartDate\" required>
</div>
<div class=\"col\">
<label for=\"inputEndDate\">End date</label>
<input type=\"date\" name=\"end\" id=\"inputEndDate\" value='$end_date' class=\"form-control\" required>
</div>
</div>
<br>
<div class=\"btns\">
<a id='view_details' href='update_student.php?sub=" . $row['student_no'] . "' ><button type=\"submit\" name=\"update\" class=\"btn mybtn btn-primary\">Register Student</button></a>
<a href=\"student_management_system.php\"><button type=\"button\" style='color:white;' name=\"back\" class=\"btn mybtn\"><i class=\"fas fa-home\"></i>Back to main page</button></a>
</div>
</form>";}
else {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array();
$trimmedFName = trim($fName);
$trimmedLName = trim($lName);
$trimmedAdd1 = trim($add1);
$trimmedAdd2 = trim($add1);
$trimmedCity = trim($city);
$trimmedEircode = trim($eircode);
$trimmedHomeNum = trim($hNum);
$trimmedMobileNum = trim($mNum);
$trimmedEmail = trim($email);
if (empty($sNum)) {
$errors[] = 'Student number is required!';
} else {
$stNum = trim($_POST['sNum']);
$stNumLength = strlen($stNum);
if ($stNumLength > 7) {
$errors[] = 'Invalid student number! Student number must be 7 characters long.';
}
}
if (empty($fName)) {
$errors[] = 'First name is required!';
} else if (!preg_match("/[A-Za-z]{1,32}/", $trimmedFName)) {
$errors[] = 'Invalid first name! First name must contain only capital and small letters.';
}
if (empty($lName)) {
$errors[] = 'Last name is required!';
} else if (!preg_match("/[A-Za-z]{1,32}/", $trimmedLName)) {
$errors[] = 'Invalid last name! Last name must contain only capital and small letters.';
}
if (empty($email)) {
$errors[] = 'Email is required.';
} else if (!filter_var($trimmedEmail, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Invalid email address.";
}
if (empty($add1)) {
$errors[] = 'Address 1 is required!';
} else if (!preg_match('/^[#.0-9a-zA-Z\s]+$/', $trimmedAdd1)) {
$errors[] = 'Invalid Address 1! Address 1 must only contain digits, spaces, upper and lowercase letters.';
} else {
$add1Length = strlen($trimmedAdd1);
if ($add1Length > 20) {
$errors[] = 'Invalid address 1! Address 1 must not exceed 20 characters.';
}
}
if (empty($add2)) {
$errors[] = 'Address 2 is required!';
} else if (!preg_match("/[a-zA-Z ]+/", $trimmedAdd2)) {
$errors[] = 'Invalid Address 2! Address 2 must only contain digits, spaces, upper and lowercase letters.';
} else {
$add2Length = strlen($trimmedAdd2);
if ($add2Length > 20) {
$errors[] = 'Invalid address 2! Address 2 must not exceed 20 characters.';
}
}
if (empty($trimmedCity)) {
$errors[] = "City is required!";
} else if (!preg_match("/^[a-zA-Z]+(?:[\s-][a-zA-Z]+)*$/", $trimmedCity)) {
$errors[] = 'Invalid city name! City name must only contain upper and lower case letters.';
} else {
$cityLength = strlen($trimmedCity);
if ($cityLength > 20) {
$errors[] = 'Invalid city name! City name must not exceed 20 characters.';
}
}
if (empty($eircode)) {
$errors[] = "Eircode is required!";
} else {
$eircodeLength = strlen($trimmedEircode);
if ($eircodeLength < 8 || $eircodeLength > 8) {
$errors[] = "Invalid eircode! Eircode must only contain 7 characters and 1 space.";
}
}
if (empty($hNum)) {
$errors[] = "Home number is required!";
} else if (!preg_match("/[01][0-9]{7}/", $trimmedHomeNum)) {
$errors[] = "Invalid home number! Home number must only contain digits and should be 7 digits long";
} else {
$hNumLength = strlen($trimmedHomeNum);
if ($hNumLength > 9) {
$errors[] = "Invalid home number! Home number must not exceed 7 digits.";
}
}
if (empty($mNum)) {
$errors[] = "Mobile number is required!";
} else if (!preg_match("/[08][0-9]{7}/", $trimmedMobileNum)) {
$errors[] = "Invalid mobile number! Mobile number must only contain digits and should be 7 digits long";
} else {
$mNumLength = strlen($trimmedMobileNum);
if ($mNumLength > 10) {
$errors[] = "Invalid mobile number! Mobile number must not exceed 10 digits.";
}
}
if (empty($errors)) {
echo "<div class=\"alert alert-success\" role=\"alert\"><h4>Student successfully added!</h4></div>";
} else {
echo "<div class=\"alert alert-danger\"><h4>Error! The following error(s) occured:</h4>";
foreach ($errors as $msg) {
echo "<h5>- $msg </h5>";
}
echo "</div>";
echo " <form action=\"add_student.php\" method=\"post\" class=\"jumbotron\">
<div class=\"form-row\">
<div class=\"col\">
<input type=\"number\" class=\"form-control\" name=\"sNum\" value='$sNum' placeholder=\"Student number\" required maxlength=\"7\">
</div>
<div class=\"col\">
<input type=\"text\" class=\"form-control\" name=\"fName\" value='$fName' placeholder=\"First name\" pattern=\"[A-Za-z]{1,32}\"
required>
</div>
<div class=\"col\">
<input type=\"text\" class=\"form-control\" name=\"lName\" value='$lName' placeholder=\"Last name\" pattern=\"[A-Za-z]{1,32}\"
required>
</div>
</div>
<br>
<div class=\"form-group\">
<label for=\"inputEmail\">Email</label>
<input type=\"email\" class=\"form-control\" id=\"inputEmail\" name='$email' placeholder=\"[email protected]\">
</div>
<div class=\"form-group\">
<label for=\"inputAddress\">Address</label>
<input type=\"text\" class=\"form-control\" name=\"add1\" value='$add1' id=\"inputAddress\" placeholder=\"1234 Main St\" required>
</div>
<div class=\"form-group\">
<label for=\"inputAddress2\">Address 2</label>
<input type=\"text\" class=\"form-control\" name=\"add2\" value='$add2' id=\"inputAddress2\"
placeholder=\"Apartment, studio, or floor\" required>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputCity\">City</label>
<input type=\"text\" class=\"form-control\" name=\"city\" value='$city' id=\"inputCity\" placeholder=\"eg. Dublin\"
pattern=\"^[a-zA-Z]+(?:[\s-][a-zA-Z]+)*$\" required maxlength=\"20\">
</div>
<div class=\"form-group col-md-4\">
<label for=\"inputState\">State</label>
<select name=\"state\" id=\"inputState\" value='$state' class=\"form-control\" required>
<option value=\"Co.Dublin\">Co.Dublin</option>
<option value=\"Other\">Other</option>
</select>
</div>
<div class=\"form-group col-md-2\">
<label for=\"inputEirCode\">Eircode</label>
<input type=\"text\" class=\"form-control\" value='$eircode' id=\"inputEirCode\" name=\"eir\">
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputHomeNum\">Home number</label>
<input type=\"number\" name=\"hNum\" value='$hNum' class=\"form-control\" id=\"inputHomeNum\" placeholder=\"eg. 011234567\"
pattern=\"[01][0-9]{7}\" maxlength=\"9\">
</div>
<div class=\"form-group col-md-6\">
<label for=\"inputMobileNum\">Mobile number</label>
<input type=\"number\" name=\"mNum\" value='$mNum' class=\"form-control\" id=\"inputMobileNum\" placeholder=\"eg. 087243525\"
pattern=\"[0-9]{3}[0-9]{7}\" required maxlength=\"10\">
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputDOB\">Date of birth</label>
<input type=\"date\" name=\"dob\" value='$dob' class=\"form-control\" id=\"inputDOB\" required>
</div>
<br>
<div class=\"form-group col-md-6 gen\">
<label for=\"inputGender\">Gender</label>
<select id=\"inputGender\" name=\"gender\" value='$gender' class=\"form-control\" required>
<option selected>Male</option>
<option>Female</option>
</select>
</div>
</div>
<div class=\"form-row\">
<div class=\"form-group col-md-6\">
<label for=\"inputMajor\">Major</label>
<select id=\"inputMajor\" name=\"major\" value='$major' class=\"form-control\" required>
<option selected>Computer Science</option>
<option>Business</option>
<option>Engineering</option>
<option>Psychology</option>
<option>Journalism</option>
<option>Arts</option>
<option>Mathematics</option>
<option>Philosophy</option>
<option>Architecture</option>
<option>Biology</option>
<option>Fitness studies</option>
</select>
</div>
<div class=\"form-group col-md-6\">
<label for=\"inputCourse\">Course</label>
<select id=\"inputCourse\" name=\"course\" value='$course' class=\"form-control\" required>
<option selected>BSCH</option>
<option>BSC</option>
<option>BS</option>
<option>BA</option>
<option>MSC</option>
<option>PhD</option>
<option>MA</option>
</select>
</div>
</div>
<div class=\"form-row\">
<div class=\"col\">
<label for=\"inputStudyMode\">Study mode</label>
<select id=\"inputStudyMode\" name=\"sMode\" value='$sMode' class=\"form-control\" required>
<option selected>Full-time</option>
<option>Part-time</option>
</select>
</div>
<div class=\"col\">
<label for=\"inputStartDate\">Start date</label>
<input type=\"date\" name=\"start\" value='$start_date' class=\"form-control\" id=\"inputStartDate\" required>
</div>
<div class=\"col\">
<label for=\"inputEndDate\">End date</label>
<input type=\"date\" name=\"end\" id=\"inputEndDate\" value='$end_date' class=\"form-control\" required>
</div>
</div>
<br>
<div class=\"btns\">
<button type=\"submit\" name=\"update\" class=\"btn mybtn btn-primary\">Register Student</button>
<a href=\"student_management_system.php\"><button type=\"button\" name=\"back\" class=\"btn mybtn\"><i class=\"fas fa-home\"></i>Back to main page</button></a>
</div>
</form>";
}
}
}
}
?>
<?php
} else {?>
<div class="alert alert-danger">Student doesn't exist!</div>
<?php
}
}
?>
</div>
</div>
</body>
</html>