[PHP / JS] Uitloggen na sluiten browser

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Spin1
  • Registratie: Maart 2009
  • Laatst online: 20-08-2024
Ik zoek een functie waarbij je automatisch wordt uitgelogd na het sluiten van de browser.
Verder heb ik een wat ouder topic gevonden maar deze werkt iets anders:
http://gathering.tweakers.../cookie%2Csluit%2Cbrowser

Bij mij gaat het er aleen om als ik een tabblad sluit of de browser sluit dat de volgende link dan wordt
geladen: index.php?actie=uitloggen

Zelf heb ik een scriptje op een andere site gevonden deze werkt perfect in IE maar werkt niet in Firefox
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<body onbeforeunload="HandleOnClose()">
<script language="javascript">
<!--
url = "index.php?actie=uitloggen";

function goto(url){
document.location.href = url;
}

function HandleOnClose() {
if (event.clientY < 0) {
event.returnValue = goto('index.php?actie=uitloggen'); alert("U word nu uitgelogd!");

}
}
//-->
</script>

[ Voor 4% gewijzigd door Spin1 op 27-10-2009 11:47 ]


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 14-09 11:11

glashio

C64 > AMIGA > PC

PHP:setcookie()
If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).
Je cookie opheffen zodra de website verlaten wordt?

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Werken met sessies ipv cookies?

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Nu online
Sessies gebruiken normaal gesproken ook cookies (en dan ook zo dat die verlopen als de browser wordt gesloten) en TS zegt helemaal niet hoe hij werkt. [Edit: Ah, bij de zoekparameters in die link zie je inderdaad wel 'cookie' staan.]

Maar dit soort JS oplossingen zijn sowieso onbetrouwbaar en irritant voor de gebruiker (zeker met zo'n alert erbij) dus je zult toch iets met een timeout moeten.

[ Voor 11% gewijzigd door Raynman op 27-10-2009 12:00 ]


Acties:
  • 0 Henk 'm!

  • Spin1
  • Registratie: Maart 2009
  • Laatst online: 20-08-2024
Ik heb inmiddels alle tijd functies uit mijn script verwijdert. En nu moet ik elke keer opnieuw inloggen na sluiten browser.

Maar het probleem is nu dat er een hele hoop login cookies in me database blijven staan. Hoe kan ik deze verwijderen na het sluiten van de browser ?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:33

MueR

Admin Tweakers Discord

is niet lief

Eens in de zoveel tijd een
SQL:
1
DELETE FROM CookieTabel WHERE ExpiryDate < NOW()

Via een cron, of zelfs gewoon in de page load.. is nie moeilijk... Had je met drie seconden nadenken ook kunnen bedenken.

[ Voor 14% gewijzigd door MueR op 28-10-2009 11:57 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Waarom gebruik je niet gewoon de standaard session functionaliteit van php? Daar worden dit soort dingen al automatisch voor je afgehandeld. Wil je de afhandeling iets anders, dan kun je met het toevoegen van een paar handlers de werking heel specifiek uitbreiden of aanpassen. Er is iig geen enkele noodzaak om het geheel from scratch af aan opnieuw te gaan bouwen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Not to mention dat die JS helemaal niet gaat werken wanneer de client JS heeft uitgeschakeld en/of een browser gebruikt dat de w3 standaard strikt volgt (waarin de onbeforeunload niet is gedefinieerd), zoals Opera.

Zoals eerder opgemerkt, je bewaart de logged-in user gewoonlijk in de sessie. Is de sessie verlopen, dan is de login ook gelijk verdwenen.

Ik snap alleen niet wat je met cookies in een database moet. Zoiets wil je gewoonlijk alleen wanneer je de login langer wilt bewaren dan de sessie lang is (zoiets als "Remember me on this computer" optie bij een login), maar dat wil je kennelijk juist helemaal niet. Of probeerde je de "sessie" te heruitvinden terwijl je helemaal niet wist dat PHP al een ingebakken oplossing heeft?

[ Voor 35% gewijzigd door BalusC op 29-10-2009 17:06 ]

Pagina: 1