I continue to have issues with this code and I cannot resolve it.
Without complicating things by showing the entire page I can narrow it down to this bit of code:
<?php
//=Enable Sessions=============
if (!isset($_SESSION)) {
session_start();
}
?>
<?php
if (!session_id()) session_start();
if(isset($_POST["Insert_x"])) {
$_SESSION["Installer"] = "".((isset($_POST["wInstaller"]))?$_POST["wInstaller"]:"") ."";
}
?>
This works fine on the first pass. The Session Variables are passed, however, when the user comes back to this page and submits again, it passes the exact same set of Session Variables, even though they have changed.
If I remark out this line:
if (!isset($_SESSION)) {
subsequent submittals work fine, but if you close the browser and open a new session, the initial Session Values will not be set.
On every click of the Submit button, I want to set all Session Variables to the current value of the corresponding field but I cannot seem to get this behaviour.
So here is the flow that I am after:
Initial page load
fill out form
submit form - set session values
Return to page
Pre-fill form with any existing Session Values
Edit as necessary
submit form
Overwrite All Session values with the new data
It almost works - the data goes into the database properly but my Session Values are always the first values set.
Is there a way to set this line
if (!isset($_SESSION)) {
To say If Submit Clicked?
It occurred to me that I could wipe all Session Values each time to ensure that only the new data is passed to my email and confirmation pages but there are two issues with this. 1. I use a Session Value to protect the page
2. It would require the user filling out the same info over and over again in subsequent form submittals which is not ideal.