Avatar billede amx Nybegynder
17. april 2006 - 19:34 Der er 31 kommentarer og
2 løsninger

Php redirect

Hej, er der nogen der kan fortælle mig hvor eller hvordan jeg laver et php script der redirecter.  Det er for at jeg kan tracke et link til min side.  så den skal gå igennem dette script/side og så vidre til forsiden på mit website
Avatar billede amews_aj Nybegynder
17. april 2006 - 19:35 #1
<?php
header("Location: http://www.side.dk");
?>
Avatar billede horsmark Nybegynder
17. april 2006 - 19:43 #2
husk at lave en exit; lige bag efter eller vil evt. kode efterfølgende blive eksekveret således:

<?php
header("Location: http://www.side.dk");
exit;
?>
Avatar billede horsmark Nybegynder
17. april 2006 - 19:44 #3
ja _ikke_ eksekveret ergo ;-)
Avatar billede amx Nybegynder
17. april 2006 - 19:51 #4
horsmark, jeg forstod ikke lige det sidste. ja _ikke_ eksekveret ergo?
Avatar billede Slettet bruger
17. april 2006 - 20:03 #5
Jeg tror horsmark mente, at kode efterfulgt af exit; ikke vil eksekveres, og det måske lød omvendt i hans ovenstående sætning :)
Avatar billede amx Nybegynder
17. april 2006 - 20:11 #6
Ah super. jeg har fået det til at virke. horsmark , smid et svar :-)
Avatar billede amx Nybegynder
17. april 2006 - 20:13 #7
har lige et bonus.  kan man have flere links i samme fil.  altså hvis man kommer fra link1 så kommer man hen på side 1 og kommer man fra link2 så kommer man hen på side 2 osv.
Avatar billede horsmark Nybegynder
17. april 2006 - 20:24 #8
svar.. *s*

pacroon -> yes jeg var lige lovligt kryptiskt formuleret dér ;-)

Hmm mht bonus kan du ikke lige uddybe ?
Avatar billede horsmark Nybegynder
17. april 2006 - 20:24 #9
(svar) *tsk*
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:29 #10
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:31 #11
<?php
if (header.location(www.domæne.dk)) {
echo "Du kom fra www.Domæne.dk";
}else{
echo "Du kom IKKE fra www.Domæne.dk";
}
?>

eller

<?php
if(strstr($_SERVER['HTTP_REFERER'],'www.domæne.dk')) {
    echo 'Dygtigt! :D';
}elseif(strstr($_SERVER['HTTP_REFERER'],'www.dum.dk')) {
    echo 'Det var da en dum side du kom fra';
}else{
    echo 'Aner ikke hvor du kom fra..';
}
?>
Avatar billede amx Nybegynder
17. april 2006 - 20:32 #12
ja jeg tænkte på noget som dette. jeg har en flash banner på fx. eksperten. hvis man trukker på et link_1 så kommer man over på php siden med redirect, som sender en vidre til side_1

men i flash banneren kan man også trykke på et andet link_2 som sender en over samme php side, men sender så en vidre til en anden side_2. 

altså en kode der kunne være (ren fiktion kode)
<?php

if link =1
goto ("Location: http://www.amx.dk");

if link =2
goto ("Location: http://www.amx.dk/infosiden.html");

?>
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:33 #13
Kommentar: amews_aj
>> 17/04-2006 20:29:50
>> 17/04-2006 20:31:07
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:34 #14
Nok bedere med denne:

<?
ereg('^http://([a-zA-Z0-9\-\.]+)', $_SERVER["HTTP_REFERER"],$temp_referrer);

if ($temp_referrer[1]=="www.jp.dk") {
    echo "du har fulgt et link fra jyllandsposten";
} else {
    echo "Du kommer fra en anden side";
}
?>
Avatar billede amx Nybegynder
17. april 2006 - 20:38 #15
det giver ikke helt mening for mig?
Avatar billede horsmark Nybegynder
17. april 2006 - 20:40 #16
husk at give amews_aj 95 % af poijnts ;-)
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:41 #17
Brug blot denne:

<?php
if (header.location("link1")) {
  header("Location: http://www.amx.dk");
}elseif (header.location("link2")) {
  header("Location: http://www.amx.dk/infosiden.html");
}
?>
Avatar billede amx Nybegynder
17. april 2006 - 20:50 #18
dette ser meget godt ud. men hvad hvis der er et 3. link?

<?php
if (header.location("link1")) {
  header("Location: http://www.amx.dk");
}elseif (header.location("link2")) {
  header("Location: http://www.amx.dk/infosiden.html");
}
?>
Avatar billede amews_aj Nybegynder
17. april 2006 - 20:52 #19
<?php
if (header.location("link1")) {
  header("Location: http://www.amx.dk");
}elseif (header.location("link2")) {
  header("Location: http://www.amx.dk/infosiden.html");
}else{
  header("Location: http://www.amx.dk/tredjested.html");
}
?>

Kan du få det til at virke ved dig (virker ikke her :P)
Avatar billede amews_aj Nybegynder
17. april 2006 - 21:16 #20
Her er den, den her er testet og virker. Du skal dog være opmærksom på at ikke alle browsere og firewalls tillader at hente hvor personen kommer fra!

<?php
$side_fra = $_SERVER['HTTP_REFERER'];
$side_fra_ex = explode("/", $side_fra);
$side_fra_final = $side_fra_ex['2'];
if ( $side_fra_final == "link1" ) {
    header("Location: http://www.amx.dk");
}elseif ( $side_fra_final == "link2" ) {
    header("Location: http://www.amx.dk/infosiden.html");
}else{
    header("Location: http://www.amx.dk/tredjeside.html");
}
?>
Avatar billede amx Nybegynder
17. april 2006 - 21:18 #21
Perfekt!
Avatar billede jakobdo Ekspert
17. april 2006 - 21:19 #22
Det med de to links i flash, hvorfor lader du ikke bare det flash banner have 2 links, og det ene sender brugeren til: www.side1.dk og tryk på link2 sendes man til: www.side2.dk
Det skal php vel ikke blandes ind i ?
Avatar billede amx Nybegynder
17. april 2006 - 21:31 #23
Hej Jakob. trikket er at jeg skal kunne tracke trafikken. og dermed meget nemt finde ud af hvor meget trafik der kommer gennem flash reklamen :-)
Avatar billede jakobdo Ekspert
17. april 2006 - 21:38 #24
Ok! :o) Jeg troede bare der var tale om tryk link 1 og kom til side1, og link2 til side2, så forstod ikke lige hvorfor det skulle laves så besværligt.
Men klart ja, så skal du gøre om amews_aj skriver.
Avatar billede amx Nybegynder
17. april 2006 - 22:32 #25
Jeg har lige et spørgsmål ang koden.


<?php
$side_fra = $_SERVER['HTTP_REFERER'];
$side_fra_ex = explode("/", $side_fra);
$side_fra_final = $side_fra_ex['2'];
if ( $side_fra_final == "link1" ) {
    header("Location: http://www.amx.dk");
}elseif ( $side_fra_final == "link2" ) {
    header("Location: http://www.amx.dk/infosiden.html");
}else{
    header("Location: http://www.amx.dk/tredjeside.html");
}
?>

$side_fra_ex['2']; <----- hvad står '2' for?
og når jeg lavet et link, hvordan skal det så være sådanne, eller hvordan var det link du testede?
getURL("http://www.amx.dk", "_blank");
Avatar billede amews_aj Nybegynder
17. april 2006 - 23:22 #26
Det er ligemeget, det er lige præcis derfor det 2 tal er der. det koden gør er at splitte (explode) URL'en op ved hver /

Det vil sige
0 = http:
1 =
2 = www.xxx.dk
3 = side.php..........

Selve linksne i koden (link1 og link2 skal være uden http://)

Fx
www.eksperten.dk
eksperten.dk
www.google.dk
google.dk

Da du kan riskerer at brugeren har både skrevet med og uden www. vil jeg anbefale at du bruger dem begge

<?php
$side_fra = $_SERVER['HTTP_REFERER'];
$side_fra_ex = explode("/", $side_fra);
$side_fra_final = $side_fra_ex['2'];
if ( $side_fra_final == "www.eksperten.dk" || $side_fra_final == "eksperten.dk" ) {
    header("Location: http://www.amx.dk");
    exit;
}elseif ( $side_fra_final == "www.google.dk" || $side_fra_final == "google.dk" ) {
    header("Location: http://www.amx.dk/infosiden.html");
    exit;
}else{
    header("Location: http://www.amx.dk/tredjeside.html");
    exit;
}
?>



Og som sagt, du risikerer at ryge ind i den tredje side ret ofte, da nogle firewalls blokerer for at kunne se den side man kommer fra.
Avatar billede amx Nybegynder
17. april 2006 - 23:33 #27
der er et lille problem. begge links er fra samme side.

dvs. begge links kommer fra siden peter.dk men er to links. link1 og link2. så virker det vel ikke som ovenfor?

hvis der skal være flere forbindelse til sider. så laver jeg bare flere
}elseif ( $side_fra_final == "www.google.dk" || $side_fra_final == "google.dk" ) {
    header("Location: http://www.amx.dk/infosiden.html");
    exit;
ikke?
Avatar billede jakobdo Ekspert
18. april 2006 - 07:47 #28
AMX: Prøv evt at leg lidt med funktionen: parse_url().
Test f.eks. :

echo "<pre>";
print_r(parse_url($_SERVER['HTTP_REFERER']));
echo "</pre>";
Avatar billede amews_aj Nybegynder
18. april 2006 - 09:53 #29
Så kan du bare bruge:

<?php
$side_fra = $_SERVER['HTTP_REFERER'];

if ( $side_fra == "http://www.eksperten.dk/enside.html" || $side_fra== "http://eksperten.dk/enside.html" ) {
    header("Location: http://www.amx.dk");
    exit;
}elseif ( $side_fra == "http://www.eksperten.dk/enandenside.html" || $side_fra == "http://eksperten.dk/enandenside.html" ) {
    header("Location: http://www.amx.dk/infosiden.html");
    exit;
}else{
    header("Location: http://www.amx.dk/tredjeside.html");
    exit;
}
?>
Avatar billede amx Nybegynder
18. april 2006 - 10:24 #30
som jeg læser koden, så sender den en vidre til http://www.amx.dk hvis man kommer fra http://www.eksperten.dk/enside.html og http://www.amx.dk/infosiden.html hvis man kommer fra http://www.eksperten.dk/enandenside.html.  men i mit tilfælde vil begge links være fra samme side. altså på siden www.amx.dk.  så virker dette da ikke?
Avatar billede jakobdo Ekspert
18. april 2006 - 10:39 #31
Du skal jo på en eller anden måde kunne differenciere de 2 sider der kommes fra.
Der kan jo ikke være tale om 2 forskellige sider, som begge kommer fra www.peter.dk
Ellers forstår jeg ikke hvad du vil! :o)
Avatar billede amx Nybegynder
18. april 2006 - 10:45 #32
det er helt rigtigt!  det er den problem stilling jeg er kommet med i et stykke tid.
det er en flash banner hvor man kan klikke på to links. og komme til to forskællige sider via php filen

så kan jeg tracke hvor meget trafik der har været på php filen
Avatar billede horsmark Nybegynder
18. april 2006 - 10:45 #33
<a href="amx.php?link=1">Tilbud et</a>
<a href="amx.dk/?link=2">Tilbud to</a>
<a href="amx.dk/?link=3">Info</a>

måske er det i virkeligheden blot dette du søger ?

<?
$iLinkIdentifier = $_POST['link'] ? $_POST['link'] : null;
if (!is_null($iLinkIdentifier) ) gem_link_id_i_db($iLinkIdentifier);

switch($iLinkIdentifier){
case 1:
  $sLocation = "link1.php
  break;
case 2:
  $sLocation = "link2.php
  break;
case 3:
  $sLocation = "link3.php
  break;
default:
  $sLocation = "velkommen.php
  break;
}

header("location: $sLocation");
exit;
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester