Ik wist niet precies waar ik het moest plaatsen, maar ik denk dat ik hier wel goed zit.
Ik heb een site, daarop wil ik dat er op de een of andere manier iets actief blijft, zodat de persoon op de pagina als online blijft staan. Nu heb ik het met de meta refresh gedaan, maar het vervelende is dan, dat de hele pagina herladen word, en ze dus geen berichten meer kunnen plaatsen in o.a. het gastenboek.
Iemand enig idee met welk script ik dit kan doen zodat de gebruiker er het minst van ziet?
Nope... de online functie is er al... die checkt het voor elke 5 minuten dat hij of zij online is. Nu wil ik alleen dat er een (onzichtbaar?) gedeelte ververst word, zodat de gebruiker online blijft en niet na 5 min niks doen, offline is.
Sessies controleren moet ook gebeuren na een refresh van de pagina... Ik wil niet dat de gebruiker hoeft te verversen om online te blijven, tenzij hij of zij de pagina afsluit, dan is hij of zij pas echt online.
Ja ok.. maar hoe krijg ik dezelfde URL dan in dat kleine (I)framepje van 1 bij 1... ik heb $_SERVER["REQUEST_URI"] gebruikt, dan laat hij wel de url in de source zien maar laat hij de pagina daar niet in.
Het kan met sessies zonder refresh frame?
Maak gebruik van cookies (session.use_cookies) en een lifetime van 0 (session.cookie_lifetime).
Sessie-data wordt wel als afval beschouwd na 24 minuten inactiviteit (session.gc_maxlifetime - 1440 seconden).
Je zou een voorziening kunnen schrijven die iemand (op de achtergrond ) weer automatisch inlogt.
Jeroen, zou jij het erg vinden als het door middel van AJAX wordt opgelost? Want daarmee zou je om de 5 min een script kunnen uitvoeren die de informatie in de database (of wat je ook gebruikt) weer ververst. Een idee?
Ehm.. Dat is de hele vraag niet, het ging hem erom dat mensen online blijven. Stel je voor ik ben een bezoeker op zijn site en ik zit een artikel te lezen, ik ben wel gewoon online op de site, maar sessies of database gegevens verlopen na 5 min, terwijl ik al 15 min aan het lezen ben zonder naar een andere pagina te zijn gegaan. Dan krijg alle andere bezoekers te zien, Grayen is offline, terwijl ik gewoon online ben, maar te lang op een pagina aanwezig ben. Daarom wilt jeroen een script hebben die voorkomt dat als men nog wel gewoon aanwezig is op de site, maar te lang op een pagina zijn, dat ze niet op offline komen te staan. Maar dan zonder dat hij op de zoveel tijd moet refreshen, want wat nu als de bezoeker net een formulier aan het invullen is, nogal lullig dus. Daarom lijkt een client-side oplossing nog het beste, ook al is dit niet het mooiste.
PS: Er bestaat ook een control functie genaamd "else if", dus in plaats van..
Alle directives zijn PHP_INI_ALL, deze kun je dus aan het begin van je script instellen met ini_set, of (als je webserver Apache draait) met .htaccess.
Hm... hoe zou ik dit dan aan moeten pakken? Ik begrijp het niet helemaal goed denk ik... heb je een voorbeeldcode voor zowel de ini_set als de controle?
ajax is geen aparte taal, het is gewoon een combinatie van javascript en PHP. Wat ik zou doen is het stuk waar _events en _ajax worden gedefineerd in een apart .js file gooien, dan dan andere stukje _events(window, etc. in je <head> deel van je pagina zetten. Daarin moet je het kleine stukje PHP even aanpasen naar je eigen gegevens. Die "user=<?.." is namelijk de gegevens die als $_GET variables worden mee gegeven aan de aangeven pagina. De aangegeven pagina was in mijn voorbeeld "updatelogin.php". Daarin stond een klein stukje PHP code die met behulp van de $_GET variables die je hebt meegegeven de juiste rij in de database kon aanpassen.
Die 1000 * 60 * 5 geef aan om de hoeveel tijd hij naar die updatelogin.php pagina moet gaan.
Dat deel wat in de <head> moest was nog niet goed, omdat hij anders maar eenmalig de gegevens ververst, terwijl hij in een eeuwige loop moet zitten, het moet als volgt zijn: