<?phprequire_once('pagetitles.php');$page_title=SL_EDIT_PAGE;require_once('authorizeaccess.php');?><!DOCTYPE html><html> <head> <title><?=$page_title?></title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> </head> <body><?phprequire_once('navmenu.php');?> <div class="card"> <div class="card-body"> <h1><?=$page_title?></h1> <hr/><?phprequire_once('dbconnection.php');require_once('queryutils.php');require_once('studentimagefileutil.php');$dbc=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME)ortrigger_error('Error connecting to MySQL server for DB_NAME.',E_USER_ERROR);if(isset($_GET['id_to_edit'])){$id_to_edit=$_GET['id_to_edit'];$query="SELECT * FROM studentListing WHERE id = ?";$result=parameterizedQuery($dbc,$query,'i',$id_to_edit)ortrigger_error(mysqli_error($dbc),E_USER_ERROR);if(mysqli_num_rows($result)==1){$row=mysqli_fetch_assoc($result);$student_first_name=$row['first_name'];$student_last_name=$row['last_name'];$student_email=$row['email'];$student_image_file=$row['image_file'];if(empty($student_image_file)){$student_image_file_displayed=SL_UPLOAD_PATH.SL_DEFAULT_STUDENT_FILE_NAME;}else{$student_image_file_displayed=$student_image_file;}}}elseif(isset($_POST['edit_student_submission'],$_POST['student_first_name'],$_POST['student_last_name'],$_POST['student_email'],$_POST['id_to_update'],$_POST['student_image_file'])){$student_first_name=$_POST['student_first_name'];$student_last_name=$_POST['student_last_name'];$student_email=$_POST['student_email'];$id_to_update=$_POST['id_to_update'];$student_image_file=$_POST['student_image_file'];if(empty($student_image_file)){$student_image_file_displayed=SL_UPLOAD_PATH.SL_DEFAULT_STUDENT_FILE_NAME;}else{$student_image_file_displayed=$student_image_file;}/* Here is where we will deal with the file by calling validateStudentImageFile(). This function will validate that the student image file is not greater than 128 characters, is the right image type (jpg/png/gif), and not greater than 512KB. This function will return an empty string ('') if the file validates successfully, otherwise, the string will contain error text to be output to the web page before redisplaying the form. */$file_error_message=validateStudentImageFile();if(empty($file_error_message)){$student_image_file_path=addStudentImageFileReturnPathLocation();// IF new image selected, set it to be updated in the database.if(!empty($student_image_file_path)){// IF replacing an image (other than the default), remove itif(!empty($student_image_file)){removeStudentImageFile($student_image_file);}$student_image_file=$student_image_file_path;}$query="UPDATE studentListing SET first_name = ?, last_name = ?, "."email = ?, image_file = ? WHERE id = ?";$results=parameterizedQuery($dbc,$query,'ssssi',$student_first_name,$student_last_name,$student_email,$student_image_file,$id_to_update)ortrigger_error(mysqli_error($dbc),E_USER_ERROR);$nav_link='studentdetails.php?id='.$id_to_update;header("Location: $nav_link");}else{// echo error messageecho"<h5><p class='text-danger'>".$file_error_message."</p></h5>";}}else// Unintended page link - No student to edit, link back to index{header("Location: index.php");}?> <div class="row"> <div class="col"> <form enctype="multipart/form-data" class="needs-validation" novalidate method="POST" action="<?=$_SERVER['PHP_SELF']?>"> <div class="form-group row"> <label for="student_first_name" class="col-sm-3 col-form-label-lg">First Name</label> <div class="col-sm-8"> <input type="text" class="form-control" id="student_first_name" name="student_first_name" value= '<?=$student_first_name?>' placeholder="First Name" required> <div class="invalid-feedback"> Please provide a valid first name. </div> </div> </div> <div class="form-group row"> <label for="student_last_name" class="col-sm-3 col-form-label-lg">Last Name</label> <div class="col-sm-8"> <input type="text" class="form-control" id="student_last_name" name="student_last_name" value= '<?=$student_last_name?>' placeholder="Last Name" required> <div class="invalid-feedback"> Please provide a valid last name. </div> </div> </div> <div class="form-group row"> <label for="student_email" class="col-sm-3 col-form-label-lg">Email</label> <div class="col-sm-8"> <input type="email" class="form-control" id="student_email" name="student_email" value= '<?=$student_email?>' placeholder="Email" required> <div class="invalid-feedback"> Please provide a valid email address. </div> </div> </div> <div class="form-group row"> <label for="student_image_file" class="col-sm-3 col-form-label-lg">Student Image File</label> <div class="col-sm-8"> <input type="file" class="form-control-file" id="student_image_file" name="student_image_file"> </div> </div> <button class="btn btn-primary" type="submit" name="edit_student_submission">Update Student</button> <input type="hidden" name="id_to_update" value="<?=$id_to_edit?>"> <input type="hidden" name="student_image_file" value="<?=$student_image_file?>"> </form> </div> <div class="col-3"> <img src="<?=$student_image_file_displayed?>" class="img-thumbnail" style="max-height: 400px;" alt="Student image"> </div> <script> // JavaScript for disabling form submissions if there are invalid fields (function() { 'use strict'; window.addEventListener('load', function() { // Fetch all the forms we want to apply custom Bootstrap validation styles to var forms = document.getElementsByClassName('needs-validation'); // Loop over them and prevent submission var validation = Array.prototype.filter.call(forms, function(form) { form.addEventListener('submit', function(event) { if (form.checkValidity() === false) { event.preventDefault(); event.stopPropagation(); } form.classList.add('was-validated'); }, false); }); }, false); })(); </script> </div> </div> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> </body></html>