Gå til innhold

Session_destroy() logger meg ikke ut. Hvorfor?


Anbefalte innlegg

Hei

 

Driver med et forum, og man skal jo selvfølgelig få logge ut (hihi), og da bruker jeg denne koden på logout.php:

 

<?php
session_start();
session_destroy();
// header('Location: /index2.php?p=login');
// Skal ta bort slashene fra linja over, men jeg skal ha de der forløpig
?>

 

Hvorfor blir jeg ikke logget ut da? Har aldri hatt dette problemet før :s

Lenke til kommentar
Videoannonse
Annonse

Først logger man inn, og hvis man har riktig brukernavn og passord:

$_SESSION['navnpasession'] = true;

 

Og så trykker man på "Log out" og da skal man egentlig bli logget ut, men det blir man ikke.. Cachet utgave? Har oppdatert sida som sjekker om man er pålogget/avlogget flere ganger..

 

Noe mer som trengs å vite?

 

Edit:

Jo da, forumet sjekker om man er logget inn. Hvis man er det, får man opp en meny, hvis man ikke er det så får man opp en annen meny.

Endret av Anders-Moen
Lenke til kommentar

Dette er logg ut rutina jeg bruker, fant den sikkert på phpbuilder.com en gang tror jeg

PHP
<?php

 

 // Unset all of the session variables.

 $_SESSION = array();

 

 // If it's desired to kill the session, also delete the session cookie.

 // Note: This will destroy the session, and not just the session data!

 if (isset($_COOKIE[session_name()])) {

 setcookie(session_name(), ''time()-42000'/');

 }

 

 // Finally, destroy the session.

 session_destroy();

 echo '<meta http-equiv="refresh" content="0;url=index.php" />';

?>

Lenke til kommentar
Sorry, men jeg prøvde det og.

unset($_SESSION['navnet_pa_sessionen']);

9276786[/snapback]

 

prøv:

PHP

<?php

unset($_SESSION);

?>

 

da tømmer du hele sesjonen, men det er vel strengt tatt det du vil ved en utlogging.

9277200[/snapback]

 

Det gir jo samme effekt som "session_destroy ()" - som ikke funker i Anders-Moens tilfelle ;)

Lenke til kommentar

kan se ut som det muligens er en bug i php (med mindre jeg har oversett noe her), testa dette:

 

PHP

<?php

class test

{

function __construct ()

{

session_start();

echo 'Initialize session.';

}

 

function fillSession () {

$_SESSION['random']=rand(1,100);

}

 

function toString ()

{

echo "<pre>";

print_r($_SESSION);

echo "</pre>";

}

 

function __destroy ()

{

echo session_destroy()."";

echo 'Session destroyed.';

}

}

 

$test = new test();

$test->fillSession();

$test->toString();

 

$test->__destroy();

 

$test->toString();

?>

 

$test->toString();

printer fortsatt ut random variabelen etter $test->__destroy()

men hvis jeg endrer __destroy() til

PHP

<?php

function __destroy ()

{

echo session_destroy()."";

unset($_SESSION);

echo 'Finally, destroy the session.';

}

?>

 

så tømmes $_SESSION.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...