login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Online blijven (Opgelost)

Offline JeroenI - 18/07/2007 14:54
Avatar van JeroenIPHP interesse Goedendag,

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?

Alvast bedankt.

16 antwoorden

Gesponsorde links
Offline JeroenI - 18/07/2007 14:58
Avatar van JeroenI PHP interesse Ja maar dan reload er toch niks? Hoe moet ik dit dan met PHP doen? Naar mijn weten kan dit niet met php...
Offline JeroenI - 18/07/2007 15:07
Avatar van JeroenI PHP interesse 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.
Offline Simon - 18/07/2007 15:07
Avatar van Simon PHP expert sessies?
Offline JeroenI - 18/07/2007 15:09
Avatar van JeroenI PHP interesse 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.
Offline JeroenI - 18/07/2007 15:15
Avatar van JeroenI PHP interesse 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.
Offline JeroenI - 18/07/2007 15:24
Avatar van JeroenI PHP interesse Als je een makkelijker idee heb, sta ik daarvoor open... maar dan hoor ik wel graag hoe 
Offline Thomas - 18/07/2007 15:34
Avatar van Thomas Moderator 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.
Offline Grayen - 18/07/2007 15:34
Avatar van Grayen PHP ver gevorderde 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?
Offline Grayen - 18/07/2007 15:47 (laatste wijziging 18/07/2007 15:48)
Avatar van Grayen PHP ver gevorderde
Sandernerd schreef:
dan doe je toch gewoon in het login script:

[..code..]

en in de pagina's:

[..code..]


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..

  1. if(1 = 1)
  2. {
  3. // Doe wat.
  4. }
  5. else
  6. {
  7. if(1 = 1)
  8. {
  9. // Doe wat.
  10. }
  11. }


.. kun je ook gewoon..

  1. if(1 = 1)
  2. {
  3. // Doe wat.
  4. }
  5. else if(1 = 1)
  6. {
  7. // Doe wat.
  8. }


.. schrijven.
Offline JeroenI - 18/07/2007 15:51 (laatste wijziging 18/07/2007 15:52)
Avatar van JeroenI PHP interesse Even reagerend op de codes van de laatste 2 posts... Dan moet je toch de pagina refreshen (met de hand) om te kunnen zien of hij of zij nog online is.

@fangorN: Dit moet toch in php.ini aangepast worden? Hier kan ik niet bij, staat op een server waar ik geen toegang op heb.

@Grayen: Jahoor, vind ik goed... als dat niet al te ingewikkeld is? Ik ben namelijk (nog) niet thuis met AJAX.
Offline Thomas - 18/07/2007 16:01
Avatar van Thomas Moderator 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.
Offline JeroenI - 18/07/2007 16:05
Avatar van JeroenI PHP interesse 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?
Offline Grayen - 18/07/2007 16:10
Avatar van Grayen PHP ver gevorderde Ik had het volgende in gedachte:

http://www.plaatscode.be/6035/
Offline JeroenI - 18/07/2007 16:13 (laatste wijziging 18/07/2007 16:32)
Avatar van JeroenI PHP interesse Wow!  

En wat moet ik hieraan aanpassen... zoals ik al zei, ben niet thuis in AJAX. En dit kan gewoon in je pagina, of moet ajax in de header?

[edit]
is dit de tijd hoelang hij er over doet om te controleren?
1000 * 60 * 5
Offline Grayen - 18/07/2007 17:17 (laatste wijziging 18/07/2007 17:18)
Avatar van Grayen PHP ver gevorderde 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:

  1. _events.add(window, 'load', function()
  2. {
  3. _ajax.load();
  4.  
  5. updateLogin();
  6. });
  7.  
  8. function updateLogin()
  9. {
  10. _ajax.get('updatelogin.php', 'user=<?php echo $_SESSION['user_id']; ?>');
  11.  
  12. setTimeout('updateLogin();', 1000 * 60 * 5);
  13. }


Ik hoop dat je het een beetje begrijpt  .
Offline JeroenI - 18/07/2007 20:03
Avatar van JeroenI PHP interesse Dank je voor je uitleg... ik ga er eens mee stoeien maar ik denk dat het wel goed gaat komen.

Bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s