I have a simple checklist form with a number of input fields and counters to check them. Form consists of only few text fields and some radio buttons, whose value is set to either conforms or notConforms:
- error counter ($errCounter) = counts errors like illegal input format and missing fields
- non conformance counter ($notConforms) = checks if/how many input fields are set to notConforms. I am trying to alert the user and get their confirmation if any inputs are set to notConforms.
Two problems with the outcome of my code below:
- it makes two entries (duplicate) into database
- after database update, it does not header the user to the indicated page (inspectionbatch.php)
What is wrong with the following?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if($errCounter == 0){ // provided there are no errors found during form validation
        // warn user if there is a non-conformance
        if($notConforms !== 0){ ?>
            <script>
                if(confirm("A not-conforms 'N/C' result has been recorded for one or more inspection criteria. If this is accurate, click OK to continue.")) {
                    <?php echo updateDatabase(); header("location: inspectionbatch.php");?>
                } else {
                    <?php echo updateDatabase(); header("location: inspectionbatch.php");?>
                }
            </script>
  <?php } else {
        updateDatabase(); header("location: inspectionbatch.php");
        }
    } else { // if errors are found during form validation, return how many errors were found
        echo "Error count: " . $errCounter;
    }
}
I also tried putting the header() function inside the updateDatabase() immediately after the syntax to update database. Database was updated fine but header() did not work...
 
     
    