Hoe kan ik een redirect maken met php? Zodra iemand uitgelogd is, wil ik hem/haar redirecten (na ong. 5 sec.) naar de homepage. Zelf dacht ik aan zoiets:

$redirect = time()+5;
while (time() <= $redirect){
echo 'Je wordt doorgestuurd';
}
header "location:index.php";

Zou dit een goede manier zijn?

<?php
header("Refresh: 5; URL=index.php");
echo 'Je wordt doorgestuurd...';
?>
Oke, bedankt!
Ik ga hem vanmiddag proberen.
Volgens mij kan een header() alleen gebruikt worden VOORDAT de pagina geladen is.

Wat Warchief aangeeft lijkt op de html-meta-tag:refresh.

Wat je met php kan doen is dit:

<?php
sleep(5);
header("Location: index.php");
?>


Niet echt aan te raden, maar het kan.
De html-meta-refresh is prima, maar dan is het geen php.
kleine correctie een header kan gebruikt alvorens welke vorm van output naar de browser.

Waarom 5 seconden? Net als hier dat je alweer in een ander venster zit als je een bericht gepost hebt? Gewoon gelijk doen...
In dit geval misschien wel. Als er alleen de melding is 'Je wordt doorgestuurd'.

Maar het wordt handig bij het uitloggen, zodat de bezoeker gewoon zeker wat deed hij of zij is uitgelogd. En dat ligt er natuurlijk ook weer aan waar. Want je kan natuurlijk wel aan bv. het menu zien of je daadwerkelijk bent uitgelogd.

Maar waarom een sleep gebruiken? Daarna gebruik je alsnog een header.
Citaar php.net:


Remember that header() must be called before 
any actual output is sent, 
either by normal HTML tags, 
blank lines in a file, or from PHP.


gebruik META!
Want?

Omdat hij niet netjes programmeert dan maar meta gebruiken?

De meta tag hoort in de head tag. Dit moet ook bovenaan.

Daarmee krijg je ook hetzelfde gepiel.
je kan meta evengoed als actie gebruiken om door te sturen...niet netjes maar het werkt.
Ja klopt. Maar dan nog moet die tag in de head tag, bovenaan je code. Dan heb je toch hetzelfde probleem als met de header die helemaal bovenaan de code moet?
Ik doe het vaak niet in de head tag en dat werkt ook prima...

ik laat die refresh dan uitvoeren na een formulier etc...

Reageren