Toon posts:

[PHP] Cookieprobleem, variabele ergens opslaan

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ga het nog 1 keer proberen, want ik wéét dat het kan, alleen niemand lijkt te weten hoe!

Het probleem is:
Ik heb een groot bannerscript gebouwd voor op een aantal sites wat gewoon goed werkt. Het enige probleem is dat op die sites de banners alleen aangeroepen mogen worden met htmlcode (geen php, javascript, iframes of includes) dus gewoon:

<a href="http://www.serverx.com/ads/redir.php?sid=15&aid=0">
[img]"http://www.serverx.com/ads/ad.php?sid=15&aid=0&x=468&y=60"[/img]
</a>

Het probleem dient zich hier nu dus aan, er wordt in deze code natuurlijk nergens een banner-id doorgegeven (sid staat voor het id van de site en aid voor het nummer van de banner op die site, dus 0 is de eerste). Aangzien er uit ad.php een randombanner komt moet redit.php aan de hand van sid en aid kunnen "zien" op welke banner geklikt is. Nou heb ik het al op een hele hoop manieren geprobeerd maar geen enkele werkte (natuurlijk wel op server zelf).

Heeft er iemand alsnog suggesties hoe ik dit aan zou kunnen pakken, bijvoorbeeld met cookies (zo werkte het nu, maar niet vanaf een andere site). Maar bij Kliks.nl werkt het wél op deze manier...
Alvast bedankt!

Verwijderd

cookie setten m.b.v. $REQUEST_URI :?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

In je vorige topic was toch al naar voren gekomen dat het NIET werkt? Cookies is de enige oplosing, maar cookies worden lang niet door iedereen geaccepteerd. De reden dat dit soort cookies minder snel worden geaccepteerd is omdat ze bij een image horen die niet vanaf dezelfde server wordt ingeladen als de rest van de site.

In je vorige thread heb ik al aangegeven dat een goed werkende oplossing met javascript gaat. Je wilde dit niet gebruiken, maar kijker asjeblieft nog ff naar. De clients krijgen dan het volgende dat ze in hun site moeten zetten:

<script src="http://jouserver.com/banner.js" type="text/javascript"></script>

maw... bijna niks (nog minder dan die vaste oplossing)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Weet ik, vorige keer zei ik ook al dat ik dat zelf al had bedacht... maar dat mag niet... :( maar goed, ik snap best dat het zo niet kan, de enige máár die daar aan zit is dat ze het bij kliks.nl wel werkend hebben met cookies, en zonder javascript... dus...

Verwijderd

volgens mij mis ik iets.
Alle klik.nl -achtigen doen het op volgens mij nog steeds op dezelfde cookie manier. Kijk maar wat voor headers ze sturen.

Volgens mij begrijp ik niet goed wat je wilt. Het is met cookies toch hardstikke simpel?

Op de site waar de rotating banner moeten staan zet je zoiets als:

<a href=http://blaat.nl/script2.php>[img]http://blaat.nl/script1.php></a[/img]

Je zet op de bannerserver een tabel zoiets als:
ID,BannerURL,TargetURL

de <img> - script1.php:
- Het script hiervoor kiest de banner. Het enige dat dit script vervolgens doet is een persistant cookie zetten met het ID erin van de banner die hij gekozen heeft. Vervolgens stuurt hij een Location: header naar de BannerURL. Op die manier wordt de banner laten zien en je hebt een cookie bij de user geplaatst.

de <a href> - script2.php:
- Als de user vervolgens op de banner klikt wordt script2.php dus aangeroepen. In dit script heb je nu de beschikking over het ID dat je eerder in de cookie hebt weggeschreven. Je zoek even de TargetURL erbij en je stuurt een Location: header.

Op deze manier blijven de <img> en <a href> tags gewoon hetzelfde. Je kunt die andere parameters gewoon meesturen. (categorie, site ID e.d.). Op die manier kun je ook statestieken bijhouden zoals; hoe vaak is welke banner (door wie) laten zien en hoeveel is er geklikt etc.

bedoel je dit?

Verwijderd

Topicstarter
Ja min of meer wel inderdaad. Ik zat alleen met het probleem dat er geen cookie geset wordt als de image wordt geladen omdat het dan een third-party cookie wordt. Maar ik laadde het plaatje met readfile, jij zou het dus met een location header doen? maakt dat verschil?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

* Janoz denkt nog ff aan de niet geaccepteerde cookies..

Geef je wel het juiste domein op bij de cookies die je zet? Het domein moet namelijk hetzelfde zijn als het domein waar je het plaatje weghaalt.

Daarnaast denk ik dat Kliks ook lang niet overal werkt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Op woensdag 06 maart 2002 08:20 schreef zellufs het volgende:
Ja min of meer wel inderdaad. Ik zat alleen met het probleem dat er geen cookie geset wordt als de image wordt geladen omdat het dan een third-party cookie wordt. Maar ik laadde het plaatje met readfile, jij zou het dus met een location header doen? maakt dat verschil?
Tuurlijk. Is toch veel makkelijker en het gaat nog sneller ook.

Maarre... cookies die niet worden geaccepteerd:
Ok. Voordat IE6 uitkwam hoefde je alleen rekening te houden met het feit dat die cookies binnen hetzelfde domein moesten blijven. Hostnames maakte niet uit echter je kon geen cookies lezen die in een ander domein gezet waren.

Dit is nog steeds zo maar er is een probleem bijgekomen. Dit is zwaar kut want het maakt het de ontwikkelaar niet bepaald makkelijker.
Nu is het zo dat als je links en rechts cookies zet, alles goed gaat zolang de rest van de pagina's eromheen ook maar van dat domein komen.
Een pagina op xxxx.nl kan dus geen plaatje laden van yyyy.nl als deze een cookie zet. (nou ja.. het plaatje lukt wel maar de cookie niet).
Die geldt volgens mij ook voor frames.

Dis is alleen op te lossen door een XML bestand aan te maken en een P3P header mee te sturen.

Zie:

http://www.oreillynet.com/pub/a/network/excerpt/p3p/p3p.html

... voor een goede uitleg

Verwijderd

Topicstarter
Kliks werkt vast niet overal nee, maar bij mij wel :) en mij eigen script niet. Maar moet dat domain van die cookie gelijk zijn aan de server waar het script op draait, de site waar de banner op staat. of de server vanwaar het plaatje met een readfile wordt ingelezen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op woensdag 06 maart 2002 10:25 schreef zellufs het volgende:
Kliks werkt vast niet overal nee, maar bij mij wel :) en mij eigen script niet. Maar moet dat domain van die cookie gelijk zijn aan de server waar het script op draait, de site waar de banner op staat. of de server vanwaar het plaatje met een readfile wordt ingelezen?
Dat domein moet gelijk zijn aan het domein dat in de image tag staat. Het domein waarvandaan het bannerscript dat het cookie zet dus wordt opgehaald.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Denk dat het al gelukt is, in ieder geval bedankt voor de moeite, en voor degenen die het ook willen weten, het moet met P3P en wel op deze zeer simpele manier:
PHP:
1
<?Header("P3P: CP=\"ALL\"");?>

Dan accepteertie dus alle cookies... :)

edit:

Hmm, misschien was ik iets te voorbarig...
Neehoor, het werkt echt, naja bedankt allemaal voor de hulp, ik hoop dat jullie e zelf misschien ook iets wijzer van geworden zijn, ik kan iig wer verder :)
Pagina: 1