Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP - Destroying Sessions properly on un-submitted form pages?

Tags:

php

session

If I have a php contact form with session_start() at the top, I know this creates a session. But what if the user doesn't fill out the form and instead navigates to a different page?

Do I still need to use session_destroy since I only want a session created when a user submits a php form via my contact page?

Thanks.

UPDATE: For a better idea on my form without posting lengthy code.

contact-form.html

<?php session_start(); ?>
<?php $fname = isset($_SESSION['fname'] ) ? $_SESSION['fname'] : NULL ; ?>
<form method="post" action="http://www.mysite.com/form-process.php">
  <input value="<?php echo $fname ?>" type="text" id="fname" name="fname" />
  <input type="submit" value="Submit Request" />
</form>

form-process.php

<?php
session_start(); 
$_SESSION['fname'] = $_POST['fname'];
$user = "John" ;
session_write_close(); 
if ($_SESSION['fname'] != $user) {
   header('Location: http://www.mysite.com/contact-form.html');
} 
else {
  $_SESSION = array();
  session_destroy();
  header('Location: http://www.mysite.com/thankyou.html');
}
?>
like image 592
Damainman Avatar asked Jan 24 '26 20:01

Damainman


1 Answers

The overhead of creating a session is miniscule, there's no real reason you'd need to session_destroy() though you could put the session_start() in the block that detects post rather than at the top of the script if you only want to use the session when the user posts.

like image 95
Glitch Desire Avatar answered Jan 27 '26 11:01

Glitch Desire



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!