[php] 'bijhouden van bezoekers'-probleem

Pagina: 1
Acties:

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik heb een script geschreven wat de bezoekers op m'n site bijhoudt en daar leuke grafiekjes van maakt. Hiervoor maak ik o.a. gebruik van sessies
Om te voorkomen dat een pagina 2x gehit wordt als iemand refreshed sla ik de huidige pagina telkens op in m'n sessie en controleer daar op, de volgende keer dat iemand een pagina bezoekt. (Als die hetzelfde is wordt ie dus genegeerd).

Nou gaat dit alleen mis als mensen de pagina refreshen waar ze op terecht komen als ze voor het eerst op m'n site komen. Volgens mij heeft dat te maken met dit probleem, waar ik al eerder iets over vroeg:
[rml][ php] raar sessie verschijnsel[/rml]
maar nog geen bevredigend antwoord op heb gehad.

Of ligt het misschien aan m'n code/is dit niet mogelijk met sessies?

  • Bart Coppens
  • Registratie: April 2000
  • Laatst online: 25-11-2021
Ik zou proberen die sessie in een cookie op te slaan, zodat je die extra sessie-ID niet achter je URL hoeft te hangen. Dit zal natuurlijk niet werken als de bezoekers cookies uitstaan hebben, maar dat hoeft niet zo'n probleem te zijn.

Copyright Auteur heeft Tweakers.net BV geen exclusieve licentie op bovenstaande post verleend. Voorafgaande en uitdrukkelijke schriftelijke toestemming van Tweakers.net BV is dus niet noodzakelijk voor het vermenigvuldigen van bovenstaande post


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:40
Of op je indexpagina direct een redirect doen, met de session ID in de query string. In de meeste gevallen zullen cookies wel gewoon aanstaan en dan gaat 't ook zonder redirect goed, maar dat weet je natuurlijk nog niet als de bezoeker voor 't eerst langs komt.

Ik snap trouwens niet wat er onbevredigend is aan mijn verklaring van het fenomeen dat je omschreef?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Soultaker schreef op 19 augustus 2002 @ 17:06:
Ik snap trouwens niet wat er onbevredigend is aan mijn verklaring van het fenomeen dat je omschreef?
Omdat je zegt dat het normaal is en ik dat niet geloof >:)
(no offense)

Ik heb het werkelijk waar nog nooit op een pagina gezien. Zoals ik al zei: dan zou ik dat hier bij tweakers ook moeten hebben want die maken ook van sessies gebruik (volgens mij). om maar wat te noemen. En daarbij - die site die ik aan het maken ben draait ook thuis op m'n server en daar heb ik er geen last van.
maw ik geloof gewoon niet dat het normaal is

even voor de moderators: dit is geen dubbelpost en ook geen server-verhaal. Ik post het hier omdat ik aan andere programmers wil vragen of het normaal is dat als je zo'n bezoekers script maakt mbv sessies, dat dan de eerste pagina niet wordt opgeslagen en je bij een refresh en extra hit krijgt

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Soultaker: het is trouwens ook niet logisch. Op het moment dat er een pagina bezocht wordt, gaat de server de code parsen en een sessie ID genereren (als het de eerste keer is dat ie bezocht wordt). De html code wordt vervolgens naar de client teruggestuurd en daarbij ook de sessie naam met het ID. Waarom zou de browser dan de eerste keer die sessie ID in de url aan zichzelf doorgeven en het daarna pas in een cookie opslaan? Ik zie daar de logica niet van in

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:40
marty schreef op 19 augustus 2002 @ 17:18:
Soultaker: het is trouwens ook niet logisch. Op het moment dat er een pagina bezocht wordt, gaat de server de code parsen en een sessie ID genereren (als het de eerste keer is dat ie bezocht wordt). De html code wordt vervolgens naar de client teruggestuurd en daarbij ook de sessie naam met het ID. Waarom zou de browser dan de eerste keer die sessie ID in de url aan zichzelf doorgeven en het daarna pas in een cookie opslaan? Ik zie daar de logica niet van in
Omdat de server niet weet of de browser cookies accepteert. Het beste wat 'ie kan doen, is een cookie-header meesturen in de hoop dat 'ie geaccepteert wordt, maar hij kan niet weten of die cookie ook echt ontvangen wordt. Hij moet dus ook een session ID in de query string stoppen zodat 'ie daar op kan terugvallen als 'ie bij de volgende request geen cookie van de browser meekrijgt.

Zodra de webserver echter een cookie terugkrijgt van de browser, weet 'ie dat deze cookies accepteert en het dus verder zinloos is om verder nog iets met query strings te doen.

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
maar de server stopt ze niet in de link, dat doet de browser. als ik in de broncode kijk staan de links er gewoon zonder dat hele sessie-id verhaal.
en daarbij komt dus ook dat het op m'n server thuis ook niet gebeurd? dan zou er toch hetzelfde moeten plaatsvinden? hoe verklaar je dat dan?

maargoed, afgezien daarvan is het dus zonder een redirect gewoon niet mogelijk begrijp ik?

Vraag ik me alleen af hoe sites zoals netstat dat dan doen? want daar vind ook geen redirect bij plaats

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

marty schreef op 19 augustus 2002 @ 17:13:
Omdat je zegt dat het normaal is en ik dat niet geloof >:)
(no offense)
En waarom geloof je het niet als een ervaren user dat zegt?
Als je transparant sessionid's aan hebt staan (kweenie hoe die optie heet in je php.ini) en dat meegecompileerd hebt bij het aanmaken van je php is dat idd normaal.
Ik heb het werkelijk waar nog nooit op een pagina gezien. Zoals ik al zei: dan zou ik dat hier bij tweakers ook moeten hebben want die maken ook van sessies gebruik (volgens mij). om maar wat te noemen. En daarbij - die site die ik aan het maken ben draait ook thuis op m'n server en daar heb ik er geen last van.
maw ik geloof gewoon niet dat het normaal is
Daar staan de transparant sessionid's dus ook uit.
even voor de moderators: dit is geen dubbelpost en ook geen server-verhaal. Ik post het hier omdat ik aan andere programmers wil vragen of het normaal is dat als je zo'n bezoekers script maakt mbv sessies, dat dan de eerste pagina niet wordt opgeslagen en je bij een refresh en extra hit krijgt

Als jij het "fout" programmeert is dat normaal ja ;)

Had je ook hier al kunnen lezen: http://www.php.net/manual/en/ref.session.php

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
ACM schreef op 19 augustus 2002 @ 17:31:
[nohtml]
[...]

En waarom geloof je het niet als een ervaren user dat zegt?
Als je transparant sessionid's aan hebt staan (kweenie hoe die optie heet in je php.ini) en dat meegecompileerd hebt bij het aanmaken van je php is dat idd normaal.
Kijk, dát wil ik wel geloven. Soultaker zei alleen maar dat het normaal was en mijn eigen bevindingen bewezen het tegendeel. dan is het toch niet zo raar dat ik dat niet geloof. Maar met dit antwoord ben ik erg geholpen. Dankjewel
Als jij het "fout" programmeert is dat normaal ja ;)
Ik denk dat ik het wel goed geprogrammeerd heb, want zo moeilijk is het niet - zou dat dus opgelost kunnen zijn als die optie (tranparant session id's) op de server gewijzigd wordt?
Zoals ik al zei, hij's niet van mij, maar van iemand die ik goed ken, dus kan het 'm vragen.


**********
edit
ik snap al waarom het niet lukt.....het zal inderdaad met een redirect ofzo moeten....

[ Voor 0% gewijzigd door marty op 19-08-2002 18:43 . Reden: ingeving ]


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
ACM: ik heb nogmaals naar de info van die server gekeken en die optie gechecked - hij's gecompiled met --enable-trans-sid. en session.use_trans_sid heeft waarde 1, dus staat aan. Dus dat is het niet.
Maar wat ik er van begreep uit de manual geldt dat voor alle gevallen van de sessie doorgeven. Het zou dus zowiezo niet verklaren waarom het alleen de eerste keer zo gebeurt.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:40
marty schreef op 19 augustus 2002 @ 18:31:
Maar wat ik er van begreep uit de manual geldt dat voor alle gevallen van de sessie doorgeven. Het zou dus zowiezo niet verklaren waarom het alleen de eerste keer zo gebeurt.
Waarom denk je dat? Als ik de manual zo een beetje doorblader, zie ik alleen staan dat PHP het propageren van de session ID transparant afhandelt; dat wil zeggen: het is voor de PHP code niet zichtbaar of van belang of dat via een cookie of de query string gaat. Ik kan nergens uit opmaken dat PHP, zodra het vast staat dat de client de sessie-cookies accepteert, zich nog verplicht tot het gebruiken van de query string.

Het hele idee is juist dat het de applicatie zich er geen zorgen over hoeft te maken of en hoe het werkt.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

marty schreef op 19 augustus 2002 @ 18:31:
ACM: ik heb nogmaals naar de info van die server gekeken en die optie gechecked - hij's gecompiled met --enable-trans-sid. en session.use_trans_sid heeft waarde 1, dus staat aan. Dus dat is het niet.

Dat is juist de reden waarom die sessionid's in de urls verwerkt worden in eerste instantie...
Dat het niet de oplossing voor wat voor problemen dan ook is verder m.b.t. logging is wat anders.
Pagina: 1