Avatar billede nederbasse Nybegynder
29. april 2005 - 09:03 Der er 12 kommentarer og
1 løsning

Sikker logout ved session

Hvprdan laver man et logoutscript hvor man er helt logget ud og kan bruge browserens tilbagekbap til at komme tilbage til den side man er logget ud fra
Avatar billede hyberpreprocessor Nybegynder
29. april 2005 - 09:05 #1
Hvis du bruger session

<?php
// logud.php
unset($_SESSION['dinLoginSession']);
header("Location: login.php");
?>

Hvis du så har normalt check i toppen af dine sider, kan du ikke bruge tilbage knappen.
Avatar billede hyberpreprocessor Nybegynder
29. april 2005 - 09:05 #2
Avatar billede Daniel.E Praktikant
29. april 2005 - 09:06 #3
benyt også session_destroy();
Avatar billede hyberpreprocessor Nybegynder
29. april 2005 - 09:07 #4
Hvorfor dog det ?-)

Den ødelægger alle sessions, det kan jo være at det kun er logindelen som skal fjernes.
Avatar billede Daniel.E Praktikant
29. april 2005 - 09:11 #5
session_destroy() smadre den aktuellse session, ikke alle.
Avatar billede Daniel.E Praktikant
29. april 2005 - 09:12 #6
Det er heller ikke hensigtmæssigt at gemme data i sessions efter man er logget ud.  Det er nemlig meningen at generere en ny.
Avatar billede hyberpreprocessor Nybegynder
29. april 2005 - 09:29 #7
http://dk.php.net/session_destroy

$_SESSION = 1 sessions , er ordkorrekt ja.

Men i daglig tale er

$_SESSION['1'];
$_SESSION['2'];

= 2 sessions.
Og session_destroy() ødelægger begge 2.
Avatar billede grise_bassen Nybegynder
29. april 2005 - 11:23 #8
lav det sådan her:

lav et link der hedder

<a href="logud.php?logout=yes">Log ud</a>

og så lave en fil der hedder logud.pph med flg. indhold


logud.php

<?
session_start();
if (isset($_GET['logout'])){
    session_unset();
    session_destroy();
}
print"<script language=\"javascript\">parent.location.replace('index.php');</script>";
?>
Avatar billede hyberpreprocessor Nybegynder
02. maj 2005 - 13:47 #9
grise_bassen

Den virker også hvis du skriver logout=no :D
og javascript er sku da max usikkert :P
+ unset er unødvendig hvis du laver destroy

<?
session_start();
if (isset($_GET['logout']) && $_GET['logout'] == "yes")
{
    session_destroy();
    header("Location: index.php");
}
?>
Avatar billede nederbasse Nybegynder
13. maj 2005 - 10:30 #10
Jeg har prøvet alle metoder i har foreslået og kan stadig bruge browserens tilnageknap til at komme til den side jeg er logget ud af
Avatar billede sukos Juniormester
13. maj 2005 - 10:44 #11
Hvis du sætter sessions så'n her:

$_SESSION["noget"] = "etellerandet";

så brug

<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location:/");
exit;
?>

i en logudfil
Avatar billede sukos Juniormester
13. maj 2005 - 10:44 #12
Og ellers, så er det måske noget af din kode som fejler, så man er logget ind stadig?
Avatar billede nederbasse Nybegynder
20. maj 2005 - 13:59 #13
Jeg kan få det til at virke i Firefox men ikke i IE6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester