De Header Refresh Functie
Simpel een redirecter in PHP inbouwen, zodat de pagina word gerefreshed na de gewenste aantal seconden.
Gesponsorde koppelingen
Inhoudsopgave
17 reacties op 'De Header Refresh Functie'
Gesponsorde koppelingen
Quote:
dom dom dom dom domNOTE: wat je wel moet doen is session_start en ob_start boven aan je pagina zetten, voor er ook maar een enkele output is. En ob_end_flush onderaan.
ob_start() is een functie die de output (dat wat je naar de browser van de bezoeker stuurt, HTML codes dus) buffert. De voornamelijkste reden die men gebruikt om deze functie in dienst te nemen is dat ze deze foutmelding niet krijgen:
Quote:
Cannot modify header information - headers already sent by (output started at ...\test.php:...) in ...\test.php on line ...
DIT IS GEEN OPLOSSING !
Dit is een lapmiddel, hoogst waarschijnlijk is de oorzaak te wijden aan het feit dat je code gewoonweg niet goed in elkaar steekt.
Een echte oplossing kun je zoeken in het scheiden van PHP en HTML codes, of je alles wat je normaal zou echo'en in ??n variabele gooien.
Waarom session_start() trouwens?
@Sebastiaan: Naar mijn menining is het wel een oplossing, want het bufferd en de output, en zet alles op het scherm als er gestopt word met bufferen, maar dna zijn de headers toch al weer verstuurd ofterwijl je krijgt die irritante berichten niet meer.
En waarom ik session_start doe weet ik ook niet, heb ik altijd standaard bovenaan staan, en heb het eigenlijk gekopieerd uit mijn script :D
@Webmakerij: Sorry, Typo :P
En waarom ik session_start doe weet ik ook niet, heb ik altijd standaard bovenaan staan, en heb het eigenlijk gekopieerd uit mijn script :D
@Webmakerij: Sorry, Typo :P
Aanvulling:
Wil je dat de gebruiker direct wordt doorgestuurd, oftewel je wilt iemand ergens naartoe sturen zonder wachttijd. Gebruik dan dit:
En zorg inderdaad dat je html pas wordt ge-output als je klaar bent met je headers, eenmaal al html ge-ouput kun je de headers niet zonder fouten wijzigen!
Wil je toch nog kunnen refreshen en redirecten terijwl je headers als zijn ge-output dan kun je de volgende functies gebruiken:
Bij de functie goto(); moet je het pad invullen waar deze naar moet redirecten, bv Bij refresh_me() hoef je geen parameters mee te geven. Zo kun je toch php functies gebruiken om te refreshen en te redirecten zonder zelf elke keer die javascript te hoeven typen. Het is, zoals je kunt zien, wel gebasseerd op javascript!
Wil je dat de gebruiker direct wordt doorgestuurd, oftewel je wilt iemand ergens naartoe sturen zonder wachttijd. Gebruik dan dit:
En zorg inderdaad dat je html pas wordt ge-output als je klaar bent met je headers, eenmaal al html ge-ouput kun je de headers niet zonder fouten wijzigen!
Wil je toch nog kunnen refreshen en redirecten terijwl je headers als zijn ge-output dan kun je de volgende functies gebruiken:
Code (php)
Bij de functie goto(); moet je het pad invullen waar deze naar moet redirecten, bv Bij refresh_me() hoef je geen parameters mee te geven. Zo kun je toch php functies gebruiken om te refreshen en te redirecten zonder zelf elke keer die javascript te hoeven typen. Het is, zoals je kunt zien, wel gebasseerd op javascript!
En natuurlijk voor bijv een stats scriptje alleen refresh:
Maar kan je met header ook een ander frame refreshen(een nieuwe pagina in doen)?
Want als je bijv. een klok hebt in een frame, en als je een pagina opent in een ander frame dat de klok dan refreshed(alleen als voorbeeld, omdat een klok gewoon met javascript kan worden gemaakt)...
Javascript code:
<SCRIPT type=text/javascript>
setTimeout("top.clock.location = 'clock.php'", 0);
</SCRIPT>
Kan zoiets dus, en hoe?
Bij voorbaat dank!
Maar kan je met header ook een ander frame refreshen(een nieuwe pagina in doen)?
Want als je bijv. een klok hebt in een frame, en als je een pagina opent in een ander frame dat de klok dan refreshed(alleen als voorbeeld, omdat een klok gewoon met javascript kan worden gemaakt)...
Javascript code:
<SCRIPT type=text/javascript>
setTimeout("top.clock.location = 'clock.php'", 0);
</SCRIPT>
Kan zoiets dus, en hoe?
Bij voorbaat dank!
misschien wel handig te vermelden dat je na een dergelijke header ook best exit; mag gebruiken...
Lees de RFC's maar eens door over de verschillen tussen HTTP1.0 / HTTP1.1
Dan kan je zien wat waar hoort en als je dan even verder zoekt kan je ook kijken welke browsers geen HTTP1.1 ondersteunen. Zijn hele oude in ieder geval...
setcookie(); is ook nog gebasseerd op HTTP1.0 :-S...
Lees de RFC's maar eens door over de verschillen tussen HTTP1.0 / HTTP1.1
Dan kan je zien wat waar hoort en als je dan even verder zoekt kan je ook kijken welke browsers geen HTTP1.1 ondersteunen. Zijn hele oude in ieder geval...
setcookie(); is ook nog gebasseerd op HTTP1.0 :-S...
Quote:
Dat wil je zeker niet in alle gevallen. Het kan best zijn dat er na deze header nog code staat die uitgevoerd moet worden bijvoorbeeld het genereren van output op het scherm...misschien wel handig te vermelden dat je na een dergelijke header ook best exit; mag gebruiken...
Het enige geval waar je wel een exit() zou willen gebruiken is na een header('Location: ...'). In dat geval wordt de gebruiker immers toch doorgestuurd en is het niet nodig/gewenst dan de rest van de code uitgevoerd wordt.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Niels- 8 jaar geleden
- 9.033 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- PHP functies
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu