Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 00:33 Der er 16 kommentarer

automatisk logud

jeg er ved at kode en chat i php og mysql jeg bruger derudover sessions til at gemme brugerens nick osv. Hvordan kan jeg lave så en bruger automatisk logger ud efter et vis stykke tid uden at være til stede ?
Avatar billede sonic_86 Nybegynder
19. april 2003 - 00:34 #1
Hmm ved ikke lige med tid men sådan logger du dem ud:

session_destroy();
Avatar billede olebole Juniormester
19. april 2003 - 01:23 #2
<ole>

sonic_86 >> Nej, det nytter ikke bare at bruge session_destroy(). Du skal også slette session-cookie'en, der er sat på brugeren  ;o)

hvidlogspusher >> Du skal nok kikke på denne funktion, men hvilken du kan sætte varigheden af en session:
  http://www.php.net/manual/en/function.session-set-cookie-params.php

/mvh
</bole>
Avatar billede Slettet bruger
19. april 2003 - 11:39 #3
Jeg plejer bare at bruge session_unregister($var);

men jeg tror ikke det er det hvidlogspusher er ude efter.

hvidlogspusher>> forstår jeg dig ret, når jeg siger at det du er ude efter at få at vide er, hvordan man får den til at logge ud, når fx et vindue lukkes ned.
Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 13:19 #4
jeps qpq-mads præcis, php skal kunne se at han lukke vinduet og derefter kører nogle funktioner igennem
Avatar billede Slettet bruger
19. april 2003 - 13:24 #5
der skal du bruge Javascript. PHP er serverside, og kan ikke se om du lukker vinduet.

i <body> indsætter onunload="window.open('logud.php','','')"

og så har du en fil der hedder logud.php der ser nogenlunde sådan ud.

<?php session_start(); session_unregister($ensessionvariabel); ?>
<html>
<head>
<title>Logger ud</title>
</head>
<body onload="window.close()">
</body>
</html>

ved ikke om det virker, men det skulle være noget i den retning.
Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 13:28 #6
det med en "exitpopup" har jeg overvejet men der er alt for meget software i dag der har popup blokkere og så har man balladen,der må da være en anden måde...
Avatar billede Slettet bruger
19. april 2003 - 13:34 #7
ved ikke om du kan ændre vinduets location til en anden side, når der logges ud. ellers kan du lave den sådan at en lille frame i chatten opdaterer en gang imellem og sender info til serveren. Når den ikke har opdateret i noget tid, bliver brugeren logget af... (dårlig løsning).

Tror ikke der er mange andre muligheder uden brug af JAVA eller FLASH.
Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 13:39 #8
tjaa så man jo tilbage til tegnebrættet inden andre med gode ideer ?
Avatar billede olebole Juniormester
19. april 2003 - 14:16 #9
qpq-mads >> Det sletter stadig ikke den session-cookie, der er sat på brugeren. Sletningen af en session er desuden afhængig af PHP-opsætningen  :)

hvidlogspusher >> Hvorfor tilbage til tegnebrædtet? Jeg har jo givet dig det korrekte svar på dit spørgsmål i (19/04-2003 01:23:39). Du bad om en metode at slette en session efter et bestemt tidsrum ... det har du fået  :)
/mvh
Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 14:32 #10
olebole--> ja men når man logger ind i chatten så bliver ens nick smidt ind i en mysql db det er sådan at man kan se hvem der er online og skrive privat til dem ligesom på ofir
Avatar billede olebole Juniormester
19. april 2003 - 15:03 #11
.... og så? Du sætter da bare det øjeblikkelige timestamp + din sessions varighed ind i et DB-felt samtidig med login.
Så er kun de brugere online, hvis tal i dette felt er mindre end det til enhhver tid gældende timestamp.
Du kan evt. helt slette 'gamle' brugere, hvergang en ny bruger logger ind.
/mvh
Avatar billede hvidlogspusher Nybegynder
19. april 2003 - 19:17 #12
jeg er lidt forvirret nu... hvordan vil du lave det ?
Avatar billede olebole Juniormester
20. april 2003 - 00:46 #13
Der er flere måder at gøre det på - alt efter, hvordan resten af din kode er skrevet. En måde kunne jo være, at skrive ved logon:
  $_SESSION["stamp"] = time() + (60*20); // Levetid = 20 minutter
Så kan du altid spørge med:
  session_start();
  if ($_SESSION["stamp"]<time()) Header ( "Location: logout.php" );

I 'logout.php' loger du så personen ud af databasen og sletter brugerens session.
Avatar billede hvidlogspusher Nybegynder
20. april 2003 - 21:51 #14
ahh ja men det kan jeg jo ikke gøre hvis han bare lukker vinduet
Avatar billede olebole Juniormester
20. april 2003 - 22:25 #15
Check for popup-killer - og bed folk om at slå dem fra  :)
Avatar billede kalleballe Nybegynder
25. april 2005 - 09:30 #16
Olebole, - hvordan tjekker man for popup-killer??

vh

KalleBalle
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