Kan dere gjøre meg litt klokere på hvordan Callback funker?

Mr Vest

Sjefen over alle sjefer!
Jeg føler meg dum som et brød nå. Faktisk enda litt dummere enn det også. Den siste tiden har jeg tatt kontakt med forkjellige affiliatenettverk for og finne ut hvem som faktisk tilbyr callback-funksjoner for affiliatene sine. Men hvordan funker Callback egentlig? Det er jo så lite forklaringer på slikt at jeg blir sprø.

Nå vil jeg prøve og forklare så godt jeg kan. Om noe er uklart, si gjerne ifra. Dette ser ut til og fungere forholdsvis likt hos de fleste, bortsett fra Euroads som har gjort dette litt enklere for oss. Derfor må dere ikke tenke på Euroads her.

Her er informasjon jeg finner når jeg er innlogget hos affiliatenettverket:

For å ta i bruk vår callback funksjon, skal du bare tilføye din url som parameteret "cburl" på de kampanjelinks du integrerer på ditt site. Det er viktig at url-encode callback url'en innen den heftes på kampanje-url'en

Joda, forholdsvis greit nok, om jeg faktisk hadde fått vite hvilken URL det dreier seg om. Skal det være en url til min nettside, eller skal det være url til scriptet som skal ta imot callback?

Samtidig, mens jeg er innlogget hos affiliatenettverket finner jeg et felt hvor jeg må fylle ut "Kode som sendes tilbake med callback (Hvis dette feltet er tomt, deaktiveres callback)"

Hva for en kode kan dette være? Det jeg vil sende tilbake er jo kampanjeid og sub_id.

Jeg blir lite klokere her. Når jeg setter meg tilbake i sofaen og tenker her, så skal det egentlig funke slik som dette:

1: Jeg sender noen til en kampanje. Da skal URL inneholde SUBID & KampanjeID.
2: Kampanjen fullføres. Affiliatenettverk skal sende callback tilbake til mitt script, og callback skal inneholde SUBID & KampanjeID. URL i punkt 1 skal inneholde SUBID og kampanjeID for at det skal være mulig og sende denne informasjonen tilbake til meg straks kampanje blir fullført.
3: Voila. Alt er ferdig.!

Ja.. Men hvordan gjør jeg det?

Sånn OT: Er det noen strenge regler om skikkelige fæle banneord i store mengder her på forumet?
 
Sist redigert:

Mr Vest

Sjefen over alle sjefer!
Da betyr det at denne url: hxxp://kaffekopp.com/friele.php?sort=filterkaffe er like mye url-encodet som denne url hxxp://kaffekopp.com/friele/sort/filterkaffe ikke sant?
 
Det er de. Men dersom du f.eks. skal sende disse URL-ene som en get-variabel i en annen URL, bør du skrive den om til hxxp%3A%2F%2Fkaffekopp.com%2Ffriele%2Fsort%2Ffilterkaffe .

(Nei, jeg sier ikke nødvendigvis at det er det du skal gjøre i dette gitte tilfellet, JEG forstår da ingenting om callback.)

(Forresten, edit: JO, det er det du skal gjøre her, skjønner jeg når jeg ser på det opprinnelige innlegget ditt.)



For å forklare nærmere hensikten med url-encoding:

Se for deg at du lager en søkemotor der du lagrer alle søkeordene i en database slik at du har en oversikt over hva folk har søkt på. Denne funksjonen gir deg mulighet til å vise under søkefeltet «mest populære søkeord: xxx», med en link til søk etter «xxx». [Det finnes en rekke andre eksempler der dette er minst like viktig, men dette var det første jeg kom på.]

For å lage denne linken må du skrive noe slikt som dette:

Kode:
<?php
echo 'Mest populære søkeord akkurat nå: <a href="search.php?q='.htmlentities($string).'">'.htmlentities($string).'</a>';
?>

Så langt ingen problemer. Det mest populære søkeordet er xxx, så denne linken blir printet ut som <a href="search.php?q=xxx">xxx</a>.

Men hva om det mest populære søkeordet var du&jeg=koz? Hvordan ville linken ha sett ut da?

Jo; <a href="search.php?q=du&amp;jeg=koz">du&amp;jeg=koz</a> !

Med andre ord: I stedet for å sende deg til search.php med $_GET['q'] = "du&jeg=koz", blir du sendt til search.php med $_GET['q'] = 'du' og $_GET['jeg'] = 'koz' !

Det er derfor du må urlencode. Dersom du skriver ...

Kode:
<?php
echo 'Mest populære søkeord akkurat nå: <a href="search.php?q='.urlencode($string).'">'.htmlentities($string).'</a>';
?>

... vil linken som printes ut i HTML-koden din bli

<a href="search.php?q=du%26jeg%3Dkoz">du&amp;jeg=koz</a>

... og search.php skjønner at %26 betyr & og at %3D betyr =, så dermed får du en $_GET['q']-variabel med nøyaktig den verdien du vil ha der.



Og det er nøyaktig det samme du gjør her: Du må URL-encode linken din før du hefter den på kampanje-URL-en. Så i stedet for å skrive hxxp://www.callback.com/kampanje.php?cburl=hxxp://kaffekopp.com/friele.php?sort=filterkaffe , skriver du hxxp://www.callback.com/kampanje.php?cburl=hxxp%3A%2F%2Fkaffekopp.com%2Ffriele.php%3Fsort%3Dfilterkaffe . Som sagt, bruk PHP-funksjonen urlencode() (eller gjør som jeg har gjort i hele dette innlegget: skriv inn URL-en i Google og se hvordan URL-en blir seende ut når du trykker Søk) for å få en URL-encodet callbackstring.
 
Sist redigert:

Mr Vest

Sjefen over alle sjefer!
Oi, i alle dager. Jeg som trodde alle disse tegnene i infoen jeg har lest bare har vært dumme feil, og endret dem. Dette her skal absolutt testes Olaf. Takk så mye! :)
 
Topp