PHP сессия уничтожить - PullRequest
       6

PHP сессия уничтожить

2 голосов
/ 30 августа 2011

Как мне уничтожить сессию в php?

дело в том, что когда пользователь нажимает кнопку выхода из системы, сеанс заканчивается, и он перенаправляется на index.php вот мой код

Customer.php

<?php 

session_start(); 
#include("Connection.php");
if (isset($_POST['submit'])) { 
$name = $_POST['customerName']; 
$_SESSION['user'] = $name; 
} 
if (isset($_SESSION['user'])) { echo "Hello {$_SESSION['user']}, welcome back"; }
else{echo "walang tao";}

$sql="INSERT INTO ORDERS(Name) VALUES('$name')";
mysql_query($sql);

session_destroy();
?>
<button><a href="Customer.php"></a></button>

и это из index.php, где пользователь хочет войти снова

<?PHP 
/* this must go before any html */ 
session_start(); 

if (isset($_SESSION['user'])) { 
header("location: Customer.php"); 
} 
?> 
     <div class="sign">
                    <h2>Welcome</h2>
                    <form action = "Customer.php" method = "POST">
                    Customer Name:<input type = "text" name="customerName">
                    <input type = "submit" name = "submit">
                    </form> 

Ответы [ 5 ]

4 голосов
/ 30 августа 2011
session_start();
session_destroy();
1 голос
/ 15 апреля 2012

Вы также можете использовать функцию unset() для освобождения сеанса.

if (isset($_SESSION['user']))
{
  unset($_SESSION['user']);
  header('location:index.php');
}
0 голосов
/ 03 января 2013
//If you want complete destroy session then you can write.

session_destroy ();

Функция session_unset () // освобождает все переменные сессии, зарегистрированные в данный момент.

0 голосов
/ 17 сентября 2012

Если вы не используете компонент auth, тогда его действительно просто

public function logout(){
    $this->Session->destroy();
    // no cake we really want you to delete it because you suck
    $this->Session->destroy();
}
0 голосов
/ 06 июня 2012

Включите этот файл в свой заголовок и установите необходимые настройки в файле.Должно работать хорошо.

<?php
    session_cache_expire(20);
    if (!isset($_SESSION)) {    
        session_start();
    }
    // set timeout period in seconds
    $inactive = 1200; // timeout for the session
    // check to see if $_SESSION['timeout'] is set
    if(isset($_SESSION['timeout']) ) {
        $session_life = time() - $_SESSION['timeout'];
        if($session_life > $inactive) {
            $_SESSION = array();
            if(isset($_COOKIE[session_name()])) {
                setcookie(session_name(), '', time()-42000, '/');
            } 
            session_destroy(); 
            header("Location: index.php"); // or whatever you prefer to do. 
        }
    }
    $_SESSION['timeout'] = time();
?>
...