login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Php] header(); fout (Opgelost)

Offline Simax - 07/11/2007 17:48 (laatste wijziging 07/11/2007 18:58)
Avatar van SimaxOnbekend Mijn loginscript werkte tot voorheen perfect.
Nu wil ik graag, wanneer een gebruiker succesvol inlogd, deze word geredirect naar de homepage.

Dit doe ik met behulp van,
  1. header("location: home.php");

maar deze wil niet werken.

Alvast bedankt .

Ik krijg een error..
Citaat:
Warning: Cannot modify header information - headers already sent by (output started at C:xampphtdocssimaxindex.php:22) in C:xampphtdocssimaxlogin.php on line 28


Alvast bedankt .

19 antwoorden

Gesponsorde links
Offline GTW - 07/11/2007 17:50
Avatar van GTW Gouden medaille

PHP gevorderde
Dit is al vele malen gevraagd (verwijzing naar de zoekfunctie)

PHP.net: ob_start
Offline Rik - 07/11/2007 17:51 (laatste wijziging 07/11/2007 17:51)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Die error spreekt voor zich... Je hebt al iets naar de browser gestuurd voordat je gaat redirecten, en dat kan niet.

Een lelijke manier om dat op te lossen is door PHP.net: ob_start() helemaal bovenaan je script te zetten. De betere oplossing is om gewoon nog niets te echoen tot die redirect.

Edit:
Vind ik ook. 
Offline Abbas - 07/11/2007 18:38
Avatar van Abbas Gouden medaille

Crew .NET
Deze vraag is al ontelbare keren gesteld hier op het forum. Als je een keer de zoekfunctie van het forum zou gebruikt hebben dan had je dit direct gevonden...
Offline Simax - 07/11/2007 18:59
Avatar van Simax Onbekend @Boukefalos,
Citaat:
De betere oplossing is om gewoon nog niets te echoen tot die redirect.

Heb je misschien een voorbeeld?
Offline webstab - 07/11/2007 20:22
Avatar van webstab PHP ver gevorderde http://www.sitemasters.be/FAQ/2/Foutmeldingen#faq2

Je krijgt die error omdat je iets op het scherm hebt gezet voordat je header aanroept.
Offline Koen - 07/11/2007 20:43
Avatar van Koen PHP expert
webstab schreef:
http://www.sitemasters.be/FAQ/2/Foutmeldingen#faq2

Je krijgt die error omdat je iets op het scherm hebt gezet voordat je header aanroept.

Dat zei Boukefalos toch al? ;o
Offline TotempaaltJ - 07/11/2007 20:52
Avatar van TotempaaltJ PHP interesse
Genius schreef:
@Boukefalos,
[..quote..]
Heb je misschien een voorbeeld?


Hij zegt; Een betere oplossing is om gewoon niets te echoen voor je de PHP.net: ob_start doet! Van niets is toch geen voorbeeld mogelijk? 
Offline Rik - 07/11/2007 21:23
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Erg overbodig, maar die twee manieren zijn dus:
#1
  1. <?php
  2. echo 'blaat';
  3. header('Location: home.php');
  4. ?>


#2
  1. <?php
  2. header('Location: home.php');
  3. echo 'blaat';
  4. ?>


Ik zie het probleem niet eigenlijk. Als je een willekeurig ander topic erbij pakt waar iemand eenzelfde probleem heeft zie je gelijk een voorbeeld hoe je het kan fixen...
Offline Simax - 07/11/2007 21:39
Avatar van Simax Onbekend @Boukefalos,
Ik zie het probleem wel..

Nu heb ik bovenaan; ob_start(); toegepast &
krijg nog steeds dezelfde error.
Offline Rik - 07/11/2007 21:41 (laatste wijziging 07/11/2007 21:41)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Post dan eens je hele script, dan kunnen we zelf ook even kijken! 
Offline Simax - 07/11/2007 21:43
Avatar van Simax Onbekend Oke, bij deze dan..
http://www.pastebin.be/6422
Offline Rik - 07/11/2007 21:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Op de regel voor header() stuur je nog steeds tekst naar de browser...

Let ook op dat er geen whitespace bovenin je bestand staat!
Offline Simax - 07/11/2007 22:54
Avatar van Simax Onbekend
Boukefalos schreef:
Op de regel voor header() stuur je nog steeds tekst naar de browser...

Hoe bedoel je 'tekst naar de browser'?
Offline Abbas - 08/11/2007 00:35
Avatar van Abbas Gouden medaille

Crew .NET
  1. print("<p class=\"text\">U bent succesvol ingelogd.</p>");
Dat bedoelt hij...
Offline Ricky - 08/11/2007 08:08
Avatar van Ricky PHP beginner Ik los dat soort narigheden meestal op met
  1. <?php
  2. ?>
bovenaan de pagina en
  1. <?php
  2. ?>
onderaan de pagina... werkt tot nu toe altijd 
Offline timmie_loots - 08/11/2007 09:48
Avatar van timmie_loots PHP gevorderde Maar bovendien erg inefficiënt...

Dat is gewoon een omweg die het promote om op een verkeerde manier te scripten. Als je dat nodig hebt om problemen als in de TS te voorkomen ben je gewoon een slechte scripter.

Overigens aan de topicstarter:

Location heeft een volledige URL nodig, dus niet alleen home.php.
Offline Simax - 08/11/2007 15:49
Avatar van Simax Onbekend @timmie_loots,
Citaat:
Dat is gewoon een omweg die het promote om op een verkeerde manier te scripten.

Hoe zou jij het oplossen dan?
Offline ranco - 08/11/2007 16:20 (laatste wijziging 08/11/2007 16:23)
Avatar van ranco PHP gevorderde
timmie_loots schreef:
Maar bovendien erg inefficiënt...

Dat is gewoon een omweg die het promote om op een verkeerde manier te scripten. Als je dat nodig hebt om problemen als in de TS te voorkomen ben je gewoon een slechte scripter.

Overigens aan de topicstarter:

Location heeft een volledige URL nodig, dus niet alleen home.php.


@Genius: Zorgen dat er totaal geen output naar het scherm wordt gestuurd VOORDAT je een header doet. Gebruik deze methode (en zo hoort het officieel ook) al jaren, en werkt perfect.

nee hoor.. alleen home.php is voldoende tijdens een header
Offline Simax - 08/11/2007 16:48 (laatste wijziging 08/11/2007 18:45)
Avatar van Simax Onbekend @ranco,
Citaat:
Zorgen dat er totaal geen output naar het scherm wordt gestuurd VOORDAT je een header doet.

Maar hoe kan ik dan neerzetten..
"U bent succesvol ingelogd."


Edit
Opgelost door middel van..
  1. $redirect = "<script type=\"text/javascript\">
  2. url=\"index.php?page=home\"
  3. setTimeout(\"location.href=url\",3000)
  4. </script>";
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.329s