I have a form with a textbox that requires a date value (date1). When date1 is updated and submitted (posts to same page), it updates the session value with no issues but doesn't update date2 - Explained below.
When date1 is updated date2 doesn't update. Date2 will get a value by adding 30 days to date1.
In summary: Date1 - session variable gets updated after submitting the form. Date2 - session variable does not get updated after submitting the form. BUT both date1 & date2 updates in the database.
I have spent days trying to find the issue. I figured out how to get date1 to update the session variable but date2 I cannot figure it out.
Note: I echo the session variable. That's how I know it's not updating on the page. The echo isn't in the code below.
if(isset($_POST['submit'])){
$memberid = $_SESSION['memberid'];
$date1 = $_POST['date1'];
$date2 = $_SESSION['date2'];
if(empty($_POST['date1'])){
$errordate1[] = 'Select a Date';
$_SESSION['date1'];
} else {
echo $_SESSION['date1'] = $_POST['date1'];
}
if(empty($_POST['date2'])){
$_SESSION['date2'];
} else {
echo $_SESSION['date2'] = $_POST['date2'];
}
if(!isset($errordate1)){
$date1 = date('Y-m-d', strtotime($_POST['date1']));
$date2 = date('Y-m-d', strtotime($date1 . " +30 days"));
echo $date2; // I do not get the updated date.
//die($date2); // if I uncomment this line I get the updated value for date2.
try {
$_SESSION['date2'] = $_POST['date2'];
$stmt = $db->prepare('UPDATE theDates SET date1 = :date1, date2 = :date2, WHERE
memberid=:memberid');
$stmt->execute(array(':date1'=>$date1, ':date2'=>$date2, ':memberid'=>$memberid));
header('Location: profile.php');
exit;
} catch(PDOException $e) {
$errordate1[] = $e->getMessage();
}
}
}
HTML - I added a hidden value for date2 for testing. Thought I would try it and see what happens to trying to get something to work.
<form method="post" action="prof.php">
<input name="date1" type="text" value="<?php if(isset($errordate1)){ echo $_POST['date1']; } ?>" />
<input name="date2" type="hidden" value="<?php echo $_SESSION['date2']; ?>" />
<input type="submit" name="submit" value="Submit">
</form>