/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
redirect efter x sekunder og history -1
Fra : [x]


Dato : 15-07-04 23:03

Hey ng.

Er det muligt at vidrestille en bruger til en anden side efter x
sekunder via php ? Og er der en funktion der går et/flere trin tilbage i
browserens history, i stil med i java script. Begge dele er opnåligt i
JS og fungerer ganske fint, men jeg vil helst rydde siden helt for JS.

På forhånd tak.
--
mvh. [x] - www.ionline.dk

 
 
Henrik Hansen (15-07-2004)
Kommentar
Fra : Henrik Hansen


Dato : 15-07-04 23:17

[x] wrote:
> Hey ng.
>
> Er det muligt at vidrestille en bruger til en anden side efter x
> sekunder via php ? Og er der en funktion der går et/flere trin tilbage i
> browserens history, i stil med i java script. Begge dele er opnåligt i
> JS og fungerer ganske fint, men jeg vil helst rydde siden helt for JS.
>
> På forhånd tak.

Du kan godt lave noget alla

sleep(2);
header(....);

ellers ville jeg nok bare lave en meta refresh med en echo ...

Det med at gå tilbage i browserens historie er ikke muligt med php da
det forgår på klient siden så der kan du nok ikke undgå javascript.

--
Henrik Hansen

Johan Holst Nielsen (15-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-07-04 23:18

[x] wrote:
> Er det muligt at vidrestille en bruger til en anden side efter x
> sekunder via php ?

Jah
header("Refresh: 5; http://foo.bar/baz.php");
Bør virke...

> Og er der en funktion der går et/flere trin tilbage i
> browserens history, i stil med i java script. Begge dele er opnåligt i
> JS og fungerer ganske fint, men jeg vil helst rydde siden helt for JS.

Well - jah og nej. Det er browseren der bestemmer om den sender referer
med til webserveren. I tilfælde af den gør det - kan du bare linke til
siden, som ligger i den parameter.

Noget ala:
<?php
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '') {
echo '<a href="'.$_SERVER['HTTP_REFERER'].'">Tilbage</a>';
}
?>

Så vil tilbage kun fremkomme hvis HTTP_REFERER findes.


mvh
Johan

Johan Holst Nielsen (15-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-07-04 23:20

Johan Holst Nielsen wrote:
> [x] wrote:
>
>> Og er der en funktion der går et/flere trin tilbage i browserens
>> history, i stil med i java script. Begge dele er opnåligt i JS og
>> fungerer ganske fint, men jeg vil helst rydde siden helt for JS.
>
> Well - jah og nej. Det er browseren der bestemmer om den sender referer
> med til webserveren. I tilfælde af den gør det - kan du bare linke til
> siden, som ligger i den parameter.

Lige en note til den - den vil _altid_ gå tilbage til den sidst sete
side - så det er altså ikke muligt at springe f.eks. 4 sider tilbage.

mvh
Johan

Henrik Hansen (16-07-2004)
Kommentar
Fra : Henrik Hansen


Dato : 16-07-04 00:50

Johan Holst Nielsen wrote:
> Johan Holst Nielsen wrote:
>
>> [x] wrote:
>>
>>> Og er der en funktion der går et/flere trin tilbage i browserens
>>> history, i stil med i java script. Begge dele er opnåligt i JS og
>>> fungerer ganske fint, men jeg vil helst rydde siden helt for JS.
>>
>>
>> Well - jah og nej. Det er browseren der bestemmer om den sender
>> referer med til webserveren. I tilfælde af den gør det - kan du bare
>> linke til siden, som ligger i den parameter.
>
>
> Lige en note til den - den vil _altid_ gå tilbage til den sidst sete
> side - så det er altså ikke muligt at springe f.eks. 4 sider tilbage.
>

Ja skulle lige til at nævne det, den har jo altid kun den sidste side.
Man kunne eks lave et array i en session med de sidste ex. 5 besøgte
sider og så bruge det session array til at refreshe med, så er man også
sikker på man altid har de korrekte data. (folk kan slå referer fra og
vel også slette deres "historie").

--
Henrik Hansen

Johan Holst Nielsen (16-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 16-07-04 06:11

Henrik Hansen wrote:
> Johan Holst Nielsen wrote:
>
>> Johan Holst Nielsen wrote:
>>
>>> Well - jah og nej. Det er browseren der bestemmer om den sender
>>> referer med til webserveren. I tilfælde af den gør det - kan du bare
>>> linke til siden, som ligger i den parameter.
>>
>> Lige en note til den - den vil _altid_ gå tilbage til den sidst sete
>> side - så det er altså ikke muligt at springe f.eks. 4 sider tilbage.
>>
>
> Ja skulle lige til at nævne det, den har jo altid kun den sidste side.
> Man kunne eks lave et array i en session med de sidste ex. 5 besøgte
> sider og så bruge det session array til at refreshe med, så er man også
> sikker på man altid har de korrekte data. (folk kan slå referer fra og
> vel også slette deres "historie").

Så enkelt er det nu heller ikke.... lad os tage følgende eksempel...

Du har
side1.php
side2.php
side3.php


Bruger går først på side1.php, så side2.php og derefter side3.php
Nu har du et array med noget lignende
array('side1.php','side2.php','side3.php');

Fra side3.php trykker du BACK... du ryger derefter tilbage til side2.php
Nu har du et array (udgangspunkt i 3 saved...)
array('side2.php','side3.php','side2.php');

Så vil du ryge tilbage til side3.php - altså reelt samme resultat som
hvis referer er slået fra...

Man kunne selvfølgelige lave noget mere avanceret - som også tjekker på
om brugeren bruger back knappen - og derved reducerere array'et ;) Men
altså man kan gøres således at man laver array_pop når bruger går
tilbage - og der skal intet indsættes i arrayed i tilfælde det er
tilbage knappen der bruges :)

mvh
Johan

[x] (16-07-2004)
Kommentar
Fra : [x]


Dato : 16-07-04 10:45

Johan Holst Nielsen wrote:

> header("Refresh: 5; http://foo.bar/baz.php");
> Bør virke...

Det gør den også af og til. Jeg har leget lidt med den, som du ved.
Grunden til jeg spurgte efter en anden mulighed, er at IE nogle gange
"looper", eller refresh'er, den indlæste side i stedet for at redirecte.
Det er dog ikke utænkeligt at det skyldes en lille fejl min kode.


--
mvh. [x] - www.ionline.dk

[x] (16-07-2004)
Kommentar
Fra : [x]


Dato : 16-07-04 10:46

Tak til jer begge for svarene. Jeg leger lige lidt med det.

--
mvh. [x] - www.ionline.dk

Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408638
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste