$questionID, "exam_id"=>$examID, "type"=>$questionType, "question"=>$question, "marks"=>$marks, "image"=>$imageName, "option_a"=>trim($_POST["option_a"] ?? ""), "option_b"=>trim($_POST["option_b"] ?? ""), "option_c"=>trim($_POST["option_c"] ?? ""), "option_d"=>trim($_POST["option_d"] ?? ""), "option_e"=>trim($_POST["option_e"] ?? ""), "correct_answer"=>trim($_POST["correct_answer"] ?? ""), "true_false_answer"=>trim($_POST["true_false_answer"] ?? ""), "blank_answer"=>trim($_POST["blank_answer"] ?? ""), "short_answer"=>trim($_POST["short_answer"] ?? ""), "essay_marking"=>trim($_POST["essay_marking"] ?? ""), "practical_instruction"=>trim($_POST["practical_instruction"] ?? ""), "created_date"=>date("Y-m-d"), "created_time"=>date("H:i:s"), "last_modified"=>date("Y-m-d H:i:s") ]; /* ========================================================= SAVE JSON ========================================================= */ $questionFile = $questionFolder . "/" . $questionID . ".json"; write_json( $questionFile, $questionData ); /* ========================================================= CENTRAL LOG ========================================================= */ writeLog( "Question Saved", [ "exam"=>$examID, "question"=>$questionID, "type"=>$questionType ] ); /* ========================================================= CHECK FOR EXISTING QUESTION ========================================================= */ if( file_exists($questionFile) && !isset($_POST["overwrite"]) ) { /* Existing Question IDs are expected when editing. Future edit_question.php will submit overwrite=1. */ } /* ========================================================= VERIFY SAVE ========================================================= */ if(!file_exists($questionFile)) { die("Unable to save question."); } /* ========================================================= CLEAR DRAFT FLAG ========================================================= */ $_SESSION["last_saved_question"] = $questionID; $_SESSION["last_saved_exam"] = $examID; $_SESSION["last_saved_time"] = date("Y-m-d H:i:s"); /* ========================================================= SAVE & NEXT ========================================================= */ if(isset($_POST["save_next"])) { header( "Location: question_builder.php?exam=" . urlencode($examID) . "&status=saved" ); exit; } /* ========================================================= RETURN TO QUESTION MANAGER ========================================================= */ header( "Location: question_manager.php?exam=" . urlencode($examID) . "&status=saved" ); exit;