summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--login.php8
-rw-r--r--logout.php6
-rw-r--r--sessions.php4
3 files changed, 17 insertions, 1 deletions
diff --git a/login.php b/login.php
index 8a142d0..ba066aa 100644
--- a/login.php
+++ b/login.php
@@ -19,6 +19,14 @@
if ($line = $sth->fetch()) {
require_once "sessions.php";
+ if (session_status() != PHP_SESSION_NONE) {
+ session_destroy();
+ session_commit();
+ }
+
+ session_start();
+ session_regenerate_id(true);
+
$_SESSION["owner"] = $user;
header("Location: index.php");
} else {
diff --git a/logout.php b/logout.php
index e4d40ed..06fe527 100644
--- a/logout.php
+++ b/logout.php
@@ -4,6 +4,12 @@
session_destroy();
+ if (isset($_COOKIE[session_name()])) {
+ setcookie(session_name(), '', time()-42000, '/');
+ }
+
+ session_commit();
+
header("Location: login.php");
?>
diff --git a/sessions.php b/sessions.php
index 3735add..bc88180 100644
--- a/sessions.php
+++ b/sessions.php
@@ -19,5 +19,7 @@
register_shutdown_function('session_write_close');
- session_start();
+ if (isset($_COOKIE[session_name()])) {
+ session_start();
+ }
?>