[PHP] Hit registeren op een andere server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik wil voor een website de hits en bezoeken registeren via een script op een andere server. Nu wilde ik dit eerst doen via een POST via sockets, maar ik hoorde dat dit nogal resource gevoelig kan zijn en het daarom niet de beste methode is.

Nu zit ik te twijfelen tussen verschillende methoden. Een is het outputten van een img tag met get parameters met de benodigde gegevens.

De ander is het openen van het script via file_get_contents (of een andere file functie) en zo de parameters doorgeven. Deze laatste lijkt mij het mooist omdat hiervan verder niets in de ouput te vinden is en ik geen problemen met sockets kan krijgen.

Het probleem bij deze oplossing is alleen dat als het script even niet beschikbaar is, de gehele pagina lang of zelfs niet (of met een error) laadt. Nu denk ik hier een oplossing voor te vinden in de vorm van het outputten van de content van de pagina, en daarna pas de hit counten. Het zou dan helemaal mooi zijn als ik de verbinding met de client zelf kan verbreken (doormiddel van een header mischien?) en daarna pas de hit ga registeren (zodat de client ook hier niets meer van merkt.

Hoe zou ik dit laatste voor elkaar kunnen krijgen in PHP? Bestaat er een header die de verbinding verbreekt en is het mogelijk om het script daarna nog door te laten lopen? Mischien bestaat er nog een betere methode of is gebruik maken van sockets toch de beste methode?

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 18-09 10:13

glashio

C64 > AMIGA > PC

In wat voor dataspace ga je je hits opslaan txt/sql/xml/binary ?
Je wilt dus de HIT regristreren via : Client > WEBserver > LOGserver ?

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


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik ga de hits opslaan in een database. Maar dat is niet echt relevant voor het probleem. Het gaat om de beste methode om de informatie bij het scriptje te krijgen.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Het makkelijkst en het snelst lijkt me de optie met het onzichtbare plaatje (zoals nedstat het ook doet bijvoorbeeld).
Je kunt op die manier makkelijk allerlei gegevens van de bezoeker nagaan en bovendien kan je pagina er niet op blijven hangen, desnoods duurt het laden van het plaatje wat langer...

//


Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Heb je geen toegang tot de apachelogs? :?
Dat zou nl. veel eenvoudiger zijn, en kan je op zich genoeg info uit halen.

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik ben niet altijd zeker dat de website op een apache server draait, dus lijkt me dat geen optie.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Er is een W3C standaard formaat voor HTTP logfiles. IIS gebruikt deze default, en Apache kun je er minimaal op configureren.

W3C Extended Log File Format - Working Draft dus. Analog en andere logfile analyzer werken allemaal op die manier.

[ Voor 48% gewijzigd door curry684 op 07-09-2004 13:59 ]

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Zeker dan zou ik gebruik maken van het onzichtbare plaatje, kun je altijd en overal inzetten. Misschien ook handig om unieke bezoekers en hits te meten als je hem laat cachen of niet.
En heb je geen gezeur met scripts e.d. op de server die de site serveert.

[ Voor 22% gewijzigd door man-o-script op 07-09-2004 13:59 ]

//


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Dat plaatje lijkt me ook de beste methode. Ik ben er al mee aan het expirimenteren. De pagina's worden overigens gewoon altijd door een php script gegenereert. Dus het is geen probleem als er een paar script regels aan te pas komen.

Dan nog de eigenlijk belangerijkste vraag in dit topic die nog niet beantwoord is. Kan ik vanuit het script de verbinding met de client verbreken (via een header) en is het dan mogelijk om het script nog verder uit te voeren totdat ik hier uit mee klaar ben. Ik output dan dus niets meer, maar ik wil alleen een paar script regels uitvoeren. Is dat mogelijk?

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Nu online

Kees

Serveradmin / BOFH / DoC
http://nl.php.net/manual/en/features.connection-handling.php
headers komen zowiezo voor de output, dus is het nutteloos om daarin aan te geven dat je de verbinding wil afbreken, redelijk onmogelijk zelfs.

Wat je wel kan doen is de connectie door de client te laten verbreken, maar op de server wel door te laten gaan. zie daarvoor bovenstaand stuk handleiding.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 16:35
Als je dat plaatje uitpoept richting bezoeker met een .gif header bijvoorbeeld, dan kun je daarna in dat script gewoon de rest uitvoeren.
http://nl.php.net/manual/en/function.ignore-user-abort.php
Is daar een handige voor.

//


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
http://nl.php.net/manual/...ter-shutdown-function.php

Dit is nou echt precies wat ik nodig had. Iedereen bedankt voor de hulp. Ik kom er wel uit zo.

Noushka's Magnificent Dream | Unity

Pagina: 1