/ 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
Redirecte efter side er udskrevet.
Fra : Peter Anskjær


Dato : 03-06-04 12:25

Hej NG
Jeg er ved at lave et galleri hvor jeg vil have et slideshow. Dette har jeg
indtil videre lavet med en http-header som jeg lader php udskrive midt i det
hele eftersom galleriet er inkluderet på en side. Fra galleri.php har jeg
ikke mulighed for at udskrive i head og derved ikke mulighed for at placere
http-headeren det rigtige sted, men alligevel virker det i de browsere jeg
har prøvet i. Jeg er bare ikke særligt vild med løsningen da den jo ikke
overholder standarderne.
Så derfor vil jeg høre hvilke muligheder jeg har for at redirecte med php
efter jeg har udskrevet ting til skærmen og hvordan gør jeg det med en
tidsforsinkelse?
Jeg har leget lidt med sleep, men det synes jeg er en forholdsvist dårlig
idé da siden så vil være meget langt tid om at loade færdigt.

Mvh
Peter



 
 
Ulrik Nielsen (03-06-2004)
Kommentar
Fra : Ulrik Nielsen


Dato : 03-06-04 12:58

Peter Anskjær wrote:
> Så derfor vil jeg høre hvilke muligheder jeg har for at redirecte med php
> efter jeg har udskrevet ting til skærmen og hvordan gør jeg det med en
> tidsforsinkelse?

det er ikke muligt at sende noget efter du har sendt otput.
- men hvis det er din egen kode skulle du kigge lidt på ob_start() og
ob_end_flush() og så evt sende en header('Refresh: 2;URL=http://.....');

--
>> ulrik nielsen
excuse of the day : interrupt configuration error
from bofh : http://www.cs.wisc.edu/~ballard/bofh/

Dennis Newel (03-06-2004)
Kommentar
Fra : Dennis Newel


Dato : 03-06-04 13:10

Ulrik Nielsen wrote:
> Peter Anskjær wrote:
>
>> Så derfor vil jeg høre hvilke muligheder jeg har for at redirecte med php
>> efter jeg har udskrevet ting til skærmen og hvordan gør jeg det med en
>> tidsforsinkelse?
>
>
> det er ikke muligt at sende noget efter du har sendt otput.
> - men hvis det er din egen kode skulle du kigge lidt på ob_start() og
> ob_end_flush() og så evt sende en header('Refresh: 2;URL=http://.....');
>

alternativt kunne du lave en javascript redirect - det er ikke meget
kønnere :) men det bryder da ikke nogle standarder. jeg kan ikke lige
huske syntaks, men det må være noget med:
<script>
   sleep(5);
   document.href="http://...";
</script>

./Dennis

Peter Anskjær (03-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 03-06-04 13:40


"Dennis Newel" <dennis@newel.dk> skrev i en meddelelse
news:40bf1501$0$203$edfadb0f@dread12.news.tele.dk...
Ulrik Nielsen wrote:
> Peter Anskjær wrote:
>
>> Så derfor vil jeg høre hvilke muligheder jeg har for at redirecte med php
>> efter jeg har udskrevet ting til skærmen og hvordan gør jeg det med en
>> tidsforsinkelse?
>
>
> det er ikke muligt at sende noget efter du har sendt otput.
> - men hvis det er din egen kode skulle du kigge lidt på ob_start() og
> ob_end_flush() og så evt sende en header('Refresh: 2;URL=http://.....');
>

alternativt kunne du lave en javascript redirect - det er ikke meget
kønnere :) men det bryder da ikke nogle standarder. jeg kan ikke lige
huske syntaks, men det må være noget med:
<script>
sleep(5);
document.href="http://...";
</script>

Vil helst undgå javascript, men tak for forslaget.

Mvh
Peter



Jonas Koch Bentzen (04-06-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 04-06-04 23:39

Dennis Newel wrote:
>
> alternativt kunne du lave en javascript redirect - det er ikke meget
> kønnere :) men det bryder da ikke nogle standarder. jeg kan ikke lige
> huske syntaks, men det må være noget med:
> <script>
> sleep(5);
> document.href="http://...";
> </script>

Bare lige til oplysning: document.href er ikke standard :) Indenfor
clientsidescripting må ECMAScript (evt. med W3C DOM ovenpå) siges at
være de accepterede standarder - og hverken window- eller
location-objektet er standard. document.href er som sagt heller ikke.
Der findes en document.URL, som er en del af W3C DOM, men den er read-only.

FUT: dk.edb.internet.webdesign.clientside

Peter Anskjær (03-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 03-06-04 13:43


"Ulrik Nielsen" <un.spam@tiscali.dk> skrev i en meddelelse
news:40bf1264$0$215$edfadb0f@dread16.news.tele.dk...
> Peter Anskjær wrote:
> > Så derfor vil jeg høre hvilke muligheder jeg har for at redirecte med
php
> > efter jeg har udskrevet ting til skærmen og hvordan gør jeg det med en
> > tidsforsinkelse?
>
> det er ikke muligt at sende noget efter du har sendt otput.
> - men hvis det er din egen kode skulle du kigge lidt på ob_start() og
> ob_end_flush() og så evt sende en header('Refresh: 2;URL=http://.....');
>
Alt kode er min egen, indtil videre kører det nu med ob_start() og
ob_end_flush() som du foreslog. Nu er problemet bare at ikke alt html bliver
genereret af php, men det kan der hurtigt laves om på.
Tak for hjælpen.
Lige et tillægsspørgsmål, som det er nu er der jo så ikke loadet nogle filer
når tiden startes, hvis alle filer så ikke er loadet når der skal refreshes,
så risikerer jeg jo at brugeren ikke får set billedet overhovedet. Er der
nogen måde hvorved jeg kan vente med at starte tiden indtil alt er
downloadet?

Mvh
Peter



Dennis Newel (03-06-2004)
Kommentar
Fra : Dennis Newel


Dato : 03-06-04 13:56

Peter Anskjær wrote:
> Lige et tillægsspørgsmål, som det er nu er der jo så ikke loadet nogle filer
> når tiden startes, hvis alle filer så ikke er loadet når der skal refreshes,
> så risikerer jeg jo at brugeren ikke får set billedet overhovedet. Er der
> nogen måde hvorved jeg kan vente med at starte tiden indtil alt er
> downloadet?
>

nu bliver det et longshot :) men er der ikke noget med at man kan
pre-loade billeder? så kunne man jo når at loade billedet før siden
bliver vist. Nu ved jeg godt du ikke vil have javascript ind over
det(hvilket er godt at undgå) men når du vil lave noget som afhænger af
klientens miljø (som at undersøge om siden er loaded færdig) kender jeg
ikke til andre udveje. Det vil jo være oplagt at benytte onLoad på body
tag'et, så du er sikker på at billedet bliver vist x antal sekunder
efter siden er loaded færdig. så længe du holder dig til det simple,
burde det virke i de mest udbredte browsere...hvis folk har slået
javascript fra, må de vel bare leve med en header redirect efter noget
længere tid ;)

...just my 2 cent

./Dennis

Peter Anskjær (04-06-2004)
Kommentar
Fra : Peter Anskjær


Dato : 04-06-04 09:48

"Dennis Newel" <dennis@newel.dk> skrev i en meddelelse
news:40bf1fd4$0$220$edfadb0f@dread12.news.tele.dk...
Peter Anskjær wrote:

nu bliver det et longshot :) men er der ikke noget med at man kan
pre-loade billeder? så kunne man jo når at loade billedet før siden
bliver vist. Nu ved jeg godt du ikke vil have javascript ind over
det(hvilket er godt at undgå) men når du vil lave noget som afhænger af
klientens miljø (som at undersøge om siden er loaded færdig) kender jeg
ikke til andre udveje. Det vil jo være oplagt at benytte onLoad på body
tag'et, så du er sikker på at billedet bliver vist x antal sekunder
efter siden er loaded færdig. så længe du holder dig til det simple,
burde det virke i de mest udbredte browsere...hvis folk har slået
javascript fra, må de vel bare leve med en header redirect efter noget
længere tid ;)

Det ender måske med at jeg laver en onload, evt. bare på billedet for at
gøre det let for mig selv kodemæssigt (resten burde også blive hentet fra
cachen). Man kan godt preloade billederne, enten med css eller javascript,
men det vil indebære at der skal udskrives noget for at sætte alt det i værk
og så er det jo for sent at sende en header, så det bider sig selv lidt i
halen.
Nu leder jeg så efter en metode til hvis folk har slået javascript fra, at
få sendt dem videre til næste billede.

Mvh
Peter



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste