Avatar billede Slettet bruger
06. december 2000 - 08:26 Der er 14 kommentarer og
1 løsning

Redirect

Jeg skal bruge en \"måde\" til at redirect en bruger automatisk videre til en anden side. Problemet er at \"Request.ServerVariables(\"http_referer\")\" skal fange den side brugeren blev redirect fra.
Avatar billede tdaugaard Nybegynder
06. december 2000 - 08:45 #1
hmm .. skulle det ikke ha\' været i ASP kat. ?
Anyway, jeg er ikke helt sikker på jeg ved hvad du mener !?
Avatar billede Slettet bruger
06. december 2000 - 08:51 #2
Både ja og nej. Den funktion som jeg skal bruge skal ligge i en html fil.
Brugeren skal sendes videre fra en side (Automatisk).
Via http_referer skal jeg kunne se hvilket domain og side vedkommede kommer fra. Det skal bruges på en ASPside
Avatar billede tdaugaard Nybegynder
06. december 2000 - 09:13 #3
Så brugeren skal redirectes fra en HTML fil til en ASP fil ?
Avatar billede Slettet bruger
06. december 2000 - 09:15 #4
Ja.
Avatar billede tdaugaard Nybegynder
06. december 2000 - 09:17 #5
Og i ASP filen skal du kunne se hvilken side de var på FØR de kom til redirection HTML siden ?
Så får du et problem, for det kan ikke lade sig gøre :(
Avatar billede Slettet bruger
06. december 2000 - 09:22 #6
Jo. Hvis de klikker på en link er der ingen problemer, men hvis de redirect\'s bliver de ikke opdateret i servervariablen \"http_referer\".
Jeg skal bruge en funktion der \"klikker på linket\", når de bliver redirectet, så bliver servervariablen opdateret.
Avatar billede tdaugaard Nybegynder
06. december 2000 - 09:27 #7
Okay .. vent lidt.

Side 1 \' siden der evt. er et link på HTML/ASP side
Side 2 \' redirect side, HTML side
Side 3  \' ASP side
\' siden du vil have HTTP_REFERER på og den skal gerne indeholde adressen fra Side 1, ikke ?

er jeg helt ved siden af eller hvad ?

hvis der klikkes på et link til side 3, fra side 1 så får du referer med, hvis der redirectes fra side 1 til side 3, gennem side 2 så får du den ikke med.

er det korrekt ?`(læs det langsomt, så forstår du den *G*)
Avatar billede Slettet bruger
06. december 2000 - 09:31 #8
hvis der klikkes på et link til side 3, fra side 1 så får du referer med.
hvis der redirectes fra side 1 til side 3, gennem side 2 så får du den ikke med.

YES.YES.YES.YES.YES.YES.YES.
Avatar billede tdaugaard Nybegynder
06. december 2000 - 09:36 #9
Ja, og det er fordi når der redirectes så vil der ske flg.

Side 1, der klikkes på et link der åbner redir. siden.
På redir. siden vil, hvis det var en ASP side, referer nu være adressen på Side 1.
På Side 3 hvor der blev redirected til vil referer nu være Side 2, redir. sidens adresse pga. at Referer giver dig adressen på siden LIGE før den du er \"på\" nu.

Derfor kan du ikke gøre det vha. en HTML side der redirecter.

Men hvorfor skal det være en HTML redir side ?

<% Response.Redirect \"side3.asp?referer=\" & Request.ServerVariables(\"HTTP_REFERER\") %>

smid den ene linie (okay, der skal sikkert mere til, men bare the basics nu ..) i en redir. asp fil, og du vil kunne få Side 1\'s adresse vha.

Request(\"referer\") på Side 3.

Avatar billede Slettet bruger
06. december 2000 - 09:53 #10
Fordi siden der redirectes fra skal ligge på andre server hvor der ikke understøttes med ASP.

Det kunne jo også laves i Java...
Avatar billede tdaugaard Nybegynder
06. december 2000 - 10:01 #11
Java ? Det aner jeg ikke noget om .. JavaScript kunne det sikkert godt .. men det vil jeg ikke bevæge mig ud på ..
Avatar billede stringbuffer Nybegynder
07. december 2000 - 15:37 #12
Du skal bruge den document property, der hedder referrer

Denne referer skal du så gemme i en variabel, som du kan overføre til de andre sider, det kan bl.a. gøres med en query string

en måde at gøre det på kunne være at sætte dette script på alle sider:

<SCRIPT>
var ref = (location.search) ? \'?\'+document.referrer : location.search;
function mitLink(url)
{
  location = url + ref;
}
</SCRIPT>

dine links skal så laves på denne her måde:
<A HREF=\"java script:mitLink(\'http://adresse.til.side1.htm\')\">side 2</A>
<A HREF=\"java script:mitLink(\'http://adresse.til.side2.htm\')\">side 2</A><A HREF=\"java script:mitLink(\'http://adresse.til.side3.htm\')\">side 2</A>


Det, der burde ske, er at på den første side vil der nok ikke være nogen query string i sidens url. Derfor vil siden sætte ref til den side, hvorfra link til din side blev fulgt (hvis der er en).
På de andre sider vil ref jo være indeholdt i en query string, og du vil på denne måde kunne bruge den på alle dine sider, selvom den kun stammer fra side 1.
Avatar billede stringbuffer Nybegynder
07. december 2000 - 15:39 #13
howsa, der skulle have stået:

var ref = (location.search) ? location.search : \'?\'+document.referrer ;
Avatar billede stringbuffer Nybegynder
07. december 2000 - 15:44 #14
det, du så kan gøre når du vil redirect´e afhængigt af hvor dine besøgende kom fra, er at sammenligne ref med nogle sider, du har specielle muligheder til. f.eks. du kan teste efter om dine besøgende fulgte et link fra jubii eller forum på denne måde:

<SCRIPT>
var ref = (location.search) ? \'?\'+document.referrer : location.search;

if (ref.indexOf(\"jubii.dk\") > 0)
location = \"specialside_for_jubii.htm\";

if (ref.indexOf(\"forum.dk\") > 0)
location = \"specialside_for_forum.htm\";


function mitLink(url)
{
  location = url + ref;
}
</SCRIPT>

du kan lave så mange sammenligninger som du har brug for (og har særlige sider til).

Avatar billede stringbuffer Nybegynder
07. december 2000 - 15:46 #15
rækkefølgen blev igen forkert... sorry, der skulle igen stå
var ref = (location.search) ? location.search : \'?\'+document.referrer ;
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