Upon initial loading of your form you have not posted any data to it so it never enters this code block:
1st load - visiting the page
if ((isset($_POST["submit_form"])) && ($_POST["submit_form"] == "Submit")) { // Data received from your submit button is not available because the form was not submitted
// We never make it here so $issue_date is not available when you need it
$issue_date = $_POST['DEFAULT CURRENT_TIMESTAMP'];
// everything else
}
2nd load - submitting the form to itself
if ((isset($_POST["submit_form"])) && ($_POST["submit_form"] == "Submit")) { // Data received from your submit button is available so we enter this block of code
// We made it here so $issue_date is available later on
$issue_date = $_POST['DEFAULT CURRENT_TIMESTAMP'];
// everything else
}
You have three choices:
1 - turn off error reporting
^ This is the easiest solution and should always be done in a Production environment or a public-facing website
At the very beginning of your file do this:
error_reporting(0);
2 - use isset() to figure out if the variable has been declared
<input type="submit" name="submit_form" id="submit" value="Submit" />
<input type="hidden" name="issuing_date" value="<?php echo (isset($issue_date) ? $issue_date : ''); ?>" />
<input type="hidden" name="reference_details" value="<?php echo (isset($reference) ? $reference: ''); ?>" />
<input type="hidden" name="name" value="<?php echo (isset($drawer_name) ? $drawer_name: ''); ?>" />
3 - declare your variables before the if(){} block
$issue_date = NULL;
$reference = NULL;
$drawer_name = NULL;
if ((isset($_POST["submit_form"])) && ($_POST["submit_form"] == "Submit")) {
$issue_date = $_POST['DEFAULT CURRENT_TIMESTAMP'];
// everything else
}