redirect

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arno

Arno

23/12/2008 06:39:00
Quote Anchor link
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 hulp

PHP hulp

14/03/2025 17:43:01
 
Erwin Geen

Erwin Geen

23/12/2008 08:41:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header("Refresh: 5; URL=index.php");
echo 'Je wordt doorgestuurd...';
?>
 
Arno

Arno

23/12/2008 08:43:00
Quote Anchor link
Oke, bedankt!
Ik ga hem vanmiddag proberen.
 
Eddy E

Eddy E

23/12/2008 09:00:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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.
 
Lode

Lode

23/12/2008 09:10:00
Quote Anchor link
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...
 
Dennis Mertens

Dennis Mertens

23/12/2008 09:28:00
Quote Anchor link
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.
 
Tikkes C

Tikkes C

23/12/2008 10:16:00
Quote Anchor link
Citaar php.net:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
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!
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
 
Dennis Mertens

Dennis Mertens

23/12/2008 10:18:00
Quote Anchor link
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.
 
Tikkes C

Tikkes C

23/12/2008 10:19:00
Quote Anchor link
je kan meta evengoed als actie gebruiken om door te sturen...niet netjes maar het werkt.
 
Dennis Mertens

Dennis Mertens

23/12/2008 10:23:00
Quote Anchor link
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?
 
Tikkes C

Tikkes C

23/12/2008 10:24:00
Quote Anchor link
Ik doe het vaak niet in de head tag en dat werkt ook prima...

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

Dennis Mertens

23/12/2008 10:27:00
Quote Anchor link
Maar daar hoort een meta tag niet, midden op je pagina.

Dan kun je net zo goed ob_start gebruiken.
Gewoon slordig.
 
PHP Newbie

PHP Newbie

23/12/2008 11:49:00
Quote Anchor link
Je hebt maar 1 regel waarop je output naar de browser stuurt en dat is de allerlaatste regel van je script. Je hebt dus nooit problemen met headers. Headers kun je overal neerzetten waar je wilt, je hebt immers toch nog geen output naar de browser verstuurd.

Een pagina als "Je bent succesvol in/uitgelogd, je wordt nu doorgestuurd" heb je toch helemaal niet nodig. Het is alleen maar iritant voor bezoekers dat ze moeten wachten. Wanneer jij mij doorstuurt naar de homepage zal ik daar als ingelogde bezoeker waarschijnlijk meer items in het menu zien staan of ik zie staan "Welkom PHP Newbie". Ik zie dan wel dat ik ingelogd ben, daar heb ik echt geen extra bevestigingspagina voor nodig.

Gewoon header('Location: vorigepagina.php'); gebruiken dus.
 
Rens nvt

Rens nvt

23/12/2008 11:53:00
Quote Anchor link
Meta refreshes kunnen uitgeschakeld worden in de browser, redirecten via php headers wordt hier volgens mij niet door beinvloed. Nog een argument waarom dit een betere optie is dus.
 
Arno

Arno

23/12/2008 12:23:00
Quote Anchor link
PHP Newbie schreef op 23.12.2008 11:49:
Je hebt maar 1 regel waarop je output naar de browser stuurt en dat is de allerlaatste regel van je script. Je hebt dus nooit problemen met headers. Headers kun je overal neerzetten waar je wilt, je hebt immers toch nog geen output naar de browser verstuurd.

Een pagina als "Je bent succesvol in/uitgelogd, je wordt nu doorgestuurd" heb je toch helemaal niet nodig. Het is alleen maar iritant voor bezoekers dat ze moeten wachten. Wanneer jij mij doorstuurt naar de homepage zal ik daar als ingelogde bezoeker waarschijnlijk meer items in het menu zien staan of ik zie staan "Welkom PHP Newbie". Ik zie dan wel dat ik ingelogd ben, daar heb ik echt geen extra bevestigingspagina voor nodig.

Gewoon header('Location: vorigepagina.php'); gebruiken dus.


Ja, daar had ik nog niet aan gedacht. Het was ook meer om de mensen de kans te geven direct weer terug in te loggen (met een link naar login). Dit staat al lang zo in het script en het is een beetje een gewoonte geworden om dit te blijven doen. Maar zoals je zegt kunnen ze op mijn nieuwe site zien dat ze zijn uitgelogd aan een aantal links die dan niet meer beschikbaar zijn (dit was op mijn oude site niet het geval).
 



Overzicht Reageren

 
 

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.