De Header Refresh Functie

Door Niels , 23 jaar geleden, 25.558x bekeken

Simpel een redirecter in PHP inbouwen, zodat de pagina word gerefreshed na de gewenste aantal seconden.

Gesponsorde koppelingen

Inhoudsopgave

  1. Header + Refresh :)

 

Er zijn 17 reacties op 'De header refresh functie'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


23 jaar geleden
 
0 +1 -0 -1
Quote:
Naast de irritante php refresh is er ook een PHP refresh,

moet zeker zijn
Quote:
Naast de irritante meta/javascript refresh is er ook een PHP refresh,

? Veder had ik hier nooit van gehoord maar klinkt handig


23 jaar geleden
 
0 +1 -0 -1
Quote:
NOTE: 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.
dom dom dom dom dom
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?
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
@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
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
GEWELDIG want hiernaar was ook ik al een tijdje opzoek!
Dank je wel voor het delen!

Lieve groet, lissy
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
Geen dank lissy en de anderen, graag gedaan :)
Ik was nog vanplan om de andere delen van de header functie uittelegen maar ik kan geen pagina's adden :P..
Mss kan een admin hiero iets aan doen ?
En anders pleur ik het wel op de zelfde pagina, maar dan met Bold voor kopjes ofzo.
PurpleMadness -
PurpleMadness -
23 jaar geleden
 
0 +1 -0 -1
Hmm, best handig, zit altijd met die javascript te klooien om het op men pagina te krijgen..
Bedankt!
Han eev
Han eev
23 jaar geleden
 
0 +1 -0 -1
Lollig dit :P
Je kan het ook met een meta doen

<meta HTTP-EQUIV='refresh' content='5;url=lalal.php'>
Zo doe ik het altijd ;)

Edit: wat is er zo irritant aan meta?? , is toch precies het zelfde als de header met php


23 jaar geleden
 
0 +1 -0 -1
Nee met meta blijf je met de terugknop een probleem houden
Remco van Arkelen
Remco van Arkelen
23 jaar geleden
 
0 +1 -0 -1
+ Bij een header met PHP blijft de pagina aan de serverzijde, m.a.w. je hebt geen verkeer tussen de client, die hoeft niet eerst een pagina binnen te halen om te zien dat ie toch ergens anders heen moet.
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
Aanvulling:
Wil je dat de gebruiker direct wordt doorgestuurd, oftewel je wilt iemand ergens naartoe sturen zonder wachttijd. Gebruik dan dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
header('Location: bestand.php');
?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
function goto($path)
{

    echo '<script language="javascript">window.location="'.$path.'";</script>';
}
function
refresh_me()
{

    echo '<script language="javascript">
    var sURL = unescape(window.location.pathname);
    window.location.href = sURL;
    </script>'
;
}

?>


Bij de functie goto(); moet je het pad invullen waar deze naar moet redirecten, bv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? goto('http://www.google.com'); ?>
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!
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
@Devoney: Dit was nou net niet de bedoeling en dat van het directe ook niet :P
maar goed evengoed bedankt voor het misschien ophelderen van andere geesten
Zero Dead
Zero Dead
23 jaar geleden
 
0 +1 -0 -1
En natuurlijk voor bijv een stats scriptje alleen refresh:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
header("Refresh: 5");
?>


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!
Bve
Bve
20 jaar geleden
 
0 +1 -0 -1
Kan het zijn dat deze functie in FF werkt en niet in IE.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
header("Refresh: 5");
?>
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Nee, dit zou gewoon in alle browsers moeten werken...
Lode
Lode
20 jaar geleden
 
0 +1 -0 -1
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...
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Quote:
misschien wel handig te vermelden dat je na een dergelijke header ook best exit; mag gebruiken...
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...

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.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Maarten
maarten
20 jaar geleden
 
0 +1 -0 -1
kan je er ook een target mee aangeven?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Header + Refresh :)

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.