Ga naar inhoud

Hoe URL parameters doorgeven naar nieuwe URL bij ‘meta refresh content’?


Aanbevolen berichten

Ik moet het volgende probleem oplossen:

Bezoekers komen terecht op een website via een Clickbank affiliatelink:

http://nick.vendor.hop.clickbank.net

Nu is het zo dat de bezoeker kan terechtkomen op verschillende websites naargelang een parameter in de affiliatelink, vb

http://nick.vendor.hop.clickbank.net?x=prod1 dan gaat-ie naar www.websiteA.com

http://nick.vendor.hop.clickbank.net?x=prod2 dan gaat-ie naar www.websiteB.com

http://nick.vendor.hop.clickbank.net?x=prod3 dan gaat-ie naar www.websiteC.com

Clickbank linkt door naar de pagina (opgegeven in de Clikbank account) waar beslist wordt naar welke websie de bezoeker wordt geleid en geeft daarbij volgende parameters

Vb: http://www.landingwebsite.com/doorlinken.php?hop=nick&x=prod1

hop=nick is de naam van de affiliate

Mijn probleem is dat bij de redirect die parameters verloren gaan

Vb: http://nick.vendor.hop.clickbank.net?x=prod1 zou moeten leiden naar/resulteren in

http:// www.websiteA.com?hop=nick (met een cookie die 60 dagen geldig is opdat de affiliate toch nog zijn commissie zou krijgen als de bezoeker beslist op een later moment te kopen)

De code die ik tot dusver heb (doorlink.php):

En moet ik de head section laten staan of kan het ook enkel met het gedeelte tussen <?php en ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Doorlinken</title>

</head>

<body>

<?php

if(isset($_GET['x']))

{

if($_GET['x'] == "prod1")

{

echo '<meta http-equiv="refresh" content= "0;URL=http://www.websiteA.com" />';

}

elseif($_GET['x'] == "prod2")

{

echo '<meta http-equiv="refresh" content= "0;URL=http://www.websiteB.com" />';

}

elseif($_GET['x'] == "prod3")

{

echo '<meta http-equiv="refresh" content= "0;URL=http://wwwwebsiteC.com" />';

}

}

else echo '<meta http-equiv="refresh" content= "0;URL=http://www.website.com/products.php" />';

?>

</body>

</html>

Dus het zou moeten worden: content= "0;URL=http://www.websiteA.com?hop=nick"

Kan iemand mij helpen?

Op voorhand bedankt.

Link naar reactie
Delen op andere sites

ik denk dat ik snap wat je bedoeld..

De head tekst zou ik gewoon laten staan, dat kan allemaal geen kwaad.

probeer dit eens (tussen je body plaatsen, dus vervangen met wat je nu hebt):

<?php
$requester = "x"; // ?x=prod1  gaat hier om de x
$timeout = 2;   // het aantal seconden voordat de pagina geladen wordt
$products = array(); // maak een array
$products['prod1'] = "http://www.paginaA.be?hop=nick"; // de eerste array   ?x=prod1...  de pagina linkt door naar paginaA.be?hop=nick
$products['prod2'] = "http://www.paginaB.be?hop=nick";  // idem aan hierboven
$products['prod3'] = "http://www.paginaC.be?hop=nick";  // nogmaals idem aan hierboven
// zorg dat er niet 2 maal hetzelfde product voorkomt. Dus prod1 twee keer plaatsen mag niet, dat geeft een foutcode

if(isset($_GET[$requester])){
   $url = $products[$_GET[$requester]];
   $timeout = $timeout*1000;
   echo "<script language=\"javascript\"> setTimeout(\"document.location.href = '" .$url. "'\",  " .$timtout. "</script>";
}

?>

ik heb er een korte uitleg in geplaatst.

ik heb een array gemaakt die hetgene overneemt wat jij met een if else hebt gemaakt.

Aan de hand wat in de adres balk staat achter de ?x= dat zoekt hij op in de array. en de juiste url die erbij hoort geeft hij terug.

Daarna moet je met javascript een stukje code maken wat de pagina laat verversen. Dan heb ik er ook nog een stukje bij gedaan dat je de timeout in seconden kunt aangeven. Dus tussen het inladen van de pagina en het verversen van de pagina.

De eerste paar regels. Deze regels:

$requester = "x"; 
$timeout = 2;  
$products = array(); 
$products['prod1'] = "http://www.paginaA.be?hop=nick"; 
$products['prod2'] = "http://www.paginaB.be?hop=nick";  
$products['prod3'] = "http://www.paginaC.be?hop=nick"; 

die regels hoef je alleen aan te passen.

$requester staat voor hetgeen wat in de adres balk staat. Dus wil je website.be?x=prod1 dan vul je daar x in.

Wil je webiste.be?prod=prod1 dan vul je daar prod in.

$timeout is het aantal seconden tussen het inladen en het verversen van de pagina

$products = array(); moet je niet aanzitten, deze maak de array.

De volgende regels kun je bewerken en toevoegen.

onderstaande code wilt dus zeggen dat jouwwebsite.be?x=prod1 wordt doorgelinkt naar webisteA.be

$products['prod1'] = "webisteA.be";

Ik hoop dat dit is wat je zocht.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Leroy, hartelijk dank voor je snelle reactie, je hulp en alle moeite.

Ik denk echter dat ik niet duidelijk genoeg geweest ben in mijn uitleg.

Het probleem is dat nick ook een variabele is.

Dus er kunnen meerdere affiliatelinks zijn zoals

http: //NICK.vendor.hop.clickbank.net?x=PROD1 of prod2 enz

en tevens

http: //PIET.vendor.hop.clickbank.net?x=PROD1 of prod2 enz

of

http: //JAN.vendor.hop.clickbank.net?x=PROD1 of prod2 enz

Dus in de oorspronkelijke link zijn er 2 parameters die variabel kunnen zijn (NICK of PIET enz... en PROD).

Ik geraak wel doorgelinkt naar de verschillende websites, maar die variabele hop=NICK of PIET of JAN wordt niet meegestuurd.

Heb ik het probleem nu duidelijker uitgelegd (sjonge, wat een zin haha)?

In ieder geval nogmaals bedankt voor alle moeite die je doet. Waardeer ik!

-

Link naar reactie
Delen op andere sites

Ik heb nog een nieuw scriptje gemaakt. Misschien is dit wat je bedoeld.

Hier de code:

<?php

$timeout = 1;
$requester = array();
$requester['{P}'] = 'prod';
$requester['{U}'] = 'uname';
$requester['{I}'] = 'inter';
$link = "http://{U}.{I}.be?prod={P}";

$checkup = array();
foreach($requester as $find => $get){
   if(!isset($_GET[$get])){
       echo $get. " is niet geset<br>";
       $checkup[] = false;
   }else{
       $checkup[] = true;
   }
}

if(!in_array(false, $checkup)){
   if(isset($_GET['prod']) && isset($_GET['uname'])){
       foreach($requester as $find => $replace){
           $link = str_replace($find, $_GET[$replace], $link);
       }
       $timeout = $timeout*1000;
       ?>
       <script language="javascript">
       setTimeout("document.location.href = '<? echo $link ?>'", <? echo $timeout ?>);
       </script>
       <?
   }
}
?> 

Nu een stukje uitleg.

Ik heb weer een timeout. Dat staat voor hetzelfde als in mijn vorige reactie. De tijd tussen het laden en het refreshen.

Ik heb nu een array $requester. Deze is in dit geval erg belangrijk.

Stel je hebt een URL die er zo uit ziet:

[url="http://%3Cb%3Egebruikersnaam%3C/b%3E"]http://[b]gebruikersnaam[/b][/url].domein.be/[b]variabele[/b]/index.php?prod=[b]productnummer[/b]

Je kunt dan met die array die gegevens aanmaken aan de hand van een sneltekst

gebruikersnaam wordt dan bijvoorbeeld {G} en wil ik aanroepen via ?uname=

variabele wordt dan bijvoorbeeld {V} en wil ik aanroepen via &var=

productnummer wordt dan bijvoorbeeld {P} en wil ik aanroepen via &prod=

de Requester array wordt dan:

$requester = array();
$requester['{G}'] = "uname";
$requester['{V}'] = "var";
$requester['{P}'] = "prod";

Hiermee kunnen je adres gegevens uitgelezen worden en koppeld hij ze aan de juiste sneltekst bijv. {G}

Onder die requester array staat een variabele $link = "";

Op de plek waar je die gegevens dus weer ingevuld wilt hebben zet je de snelteksten.

Dus in het voorbeeld wat ik heb gebruikt wordt dat:

// originele link: http://gebruikersnaam.domein.be/variabele/index.php?prod=productnummer
$link = "http://{G}.domein.be/{V}/index.php?prod={P}";

De code die daaronder staat regelt de rest van de interactie met het juist uitlezen etc.

Er zit zelfs een kleine controle in dat je ZEKER die uname, var en prod moet invullen. Dus zonder één van deze gegevens zal het script het niet doen.

Misschien is dit dan wat je zocht?

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Hallo,

Ik merk dat ik mijn probleem blijkbaar niet duidelijk en eenvoudig genoeg heb uitgelegd.

Dus ik probeer het te her-formuleren.

Bezoekers komen op een pagina terecht met volgende URL

http: //www.mijnwebsite.com/doorlink.php?hop=affiliatenaam&x=productnaam

(URL gegenereerd door Clickbank aan de hand van

http: //AFFILIATENAAM.vendor.hop.clickbank.net?x=PRODUCTNAAM )

affiliatenaam is een variabele, kan dus eender wat zijn

productnaam is ook een variabele, en de waarde hiervan wordt gebruikt om naar een

andere website door te linken.

Voorbeeld:

Is x=prod1 dan wordt doorgelinkt naar http: //www.websiteA.com

of is x=prod2 dan wordt doorgelinkt naar http: //www.websiteB.com

of is x=prod3 dan wordt doorgelinkt naar http: //www.websiteC.com

indien géén van deze 3 waarden, dan wordt er doorgelinkt naar http: //www.algemenewebsite.com

De nieuwe URL moet echter ook de variabele parameter hop=affiliatenaam bevatten

(uit http: //www.mijnwebsite.com/doorlink.php?hop=affiliatenaam&x=productnaam)

Dus bvb. In geval van

x=prod1 moet de nieuwe URL zijn http: //www.websiteA.com?hop=affiliatenaam

x=prod2 moet de nieuwe URL zijn http: //www.websiteB.com?hop=affiliatenaam

x=prod3 moet de nieuwe URL zijn http: //www.websiteC.com?hop=affiliatenaam

of http: //www.algemenewebsite.com?hop=affiliatenaam

en er moet met de nieuwe URL een 60 dagen cookie geplaatst worden opdat de affiliate toch nog zijn commissie zou krijgen als de bezoeker beslist op een later moment te kopen.

Het doorlinken naar een nieuwe website gebaseerd op de parameter x=prod, is geen probleem.

Dat werkt in mijn script (misschien wel amateuristisch geschreven, maar het werkt. Maar als iemand een eenvoudiger oplossing heeft, graag dan). Het probleem echter is dat de variabele parameter hop=affiliatenaam ook moet doorgegeven worden met de nieuwe URL en dat er een 60 dagen cookie moet geplaatst worden.

Ik hoop dat mijn uitleg het probleem nu wat duidelijker stelt.

Nogmaals dank aan iedereen die mij kan helpen.

aangepast door belper
Link naar reactie
Delen op andere sites

Ik heb een oplossing gevonden, die ook gebruikt wordt door andere Clickbank verkopers en die blijkbaar perfect doet hetgeen nodig is voor een Clickbank verkoper.

Maak een pagina (we noemen deze bvb. “redirect.php”)

     
<?php
$redirects = array(
“prod1″ => “http://www. websiteA.com”,
“prod2″ => “http://www. websiteB.com”,
“prod3″ => “http://www. websiteC.com”
);
$x = $_GET["x"];
if (array_key_exists($x, $redirects)) {
$go = $redirects[$x];
header(“Location:$go”);
die();
}
?>

In de landing pagina http: //www.algemenewebsite.com (dit was de pagina in mijn voorbeeld als x niet bestaat of als x=niet geldige waarde) voeg je deze code toe:

<?php include(“redirect.php”); ?>

Opmerkingen: 1/ Deze regel moet helemaal in het begin van de pagina-code staan, dus de aller allereerste regel van de code. 2/ Je landing page moet een PHP extensie zijn. Is je pagina “http: //www.algemenewebsite.com/index.html" dan moet je die veranderen in "http: //www. algemenewebsite.com/index.php"

Ik wil iedereen bedanken die mij geholpen en ideeën aangereikt heeft om dit probleem op te lossen.

aangepast door belper
Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.