Avatar billede gf Nybegynder
20. november 2004 - 14:39 Der er 14 kommentarer og
1 løsning

Header fejl: cannot modify header information

Hej jeg får følgende fejl når jeg kører mit script. Er der nogen der kan gennemskue hvorfor?

Warning: Cannot modify header information - headers already sent by (output started at c:\programmer\wamp\www\ladeintra\logind\tjek_logind.php:11) in c:\programmer\wamp\www\ladeintra\elevudtalelser\ret.skriv.php on line 402

i min ret.skriv.php er de de interessante linier :

1  include("../logind/tjek_logind.php");
402 header("location: ret.php?done=2");


her er tjek_logind.php

<?php
//Vi starter sessions
session_start();

//Hvis ikke sessions er sat, bliver man sendt til logind.php
if(!isset($_SESSION["brugernavn"], $_SESSION["admin"])) {
header("Location:logind.php");
exit;
}
?>


mvh gf
Avatar billede hmortensen Nybegynder
20. november 2004 - 14:46 #1
Du må ikke udskrive noget til skærmen før header.
Avatar billede amews_aj Nybegynder
20. november 2004 - 14:49 #2
Hvis det er skulle du blande lidt javascript ind i det

//Hvis ikke sessions er sat, bliver man sendt til logind.php
if(!isset($_SESSION["brugernavn"], $_SESSION["admin"])) {
echo "<script language=\"javascript\">location.href='logind.php';</script>";
exit;
}

Så virker det!
Avatar billede hmortensen Nybegynder
20. november 2004 - 14:51 #3
Jeg sender altid input til en helt anden side, som laver evt check og sender brugeren tilbage til den anden side.

Så undgår man den slags fejl
Avatar billede gf Nybegynder
20. november 2004 - 14:51 #4
Jeg er ikke helt dreven i det her. Vil if sætningen blive kørt igennem hvis jeg gør sådan?

include("../logind/tjek_logind.php");
header("location: ret.php?done=2");

if( et eller andet == et aller andet)
{
$test = "det virker";
}



mvh gf
Avatar billede jaw Nybegynder
20. november 2004 - 15:31 #5
Du har ikke en "ny linje" over din <?PHP vel? Det vil også blive opfattet som et output til skærmen, og derfor vil du få den fejl...
Avatar billede Slettet bruger
20. november 2004 - 23:03 #6
Eller en blank linie til sidst i tjek_logind.php
Avatar billede gf Nybegynder
24. februar 2005 - 23:52 #7
så er det vist lukketid kom lige med nogle svar

Mvh GF
Avatar billede amews_aj Nybegynder
25. februar 2005 - 10:04 #8
Nej if sætningen når ikke at kører når du vidersender.

MEN
IGEN FÅR DU FEJLEN CANT MODIFY HEADER....

Du må ikke "udskrive" noget før du bruger header...

i dit script deroppe udskriver du noget her:
include("../logind/tjek_logind.php");

Header skal før alt det man kan se på en side når den åbnes...

Derfor vil jeg anbefale at lave et javascript i stedet...
echo "<script language=\"javascript\">location.href='ret.php?done=2';</script>";
Avatar billede Slettet bruger
25. februar 2005 - 17:33 #9
Jo, scriptet fortsætter når man sætter en header. Så if-sætningen bliver kørt.

Det er kun når man laver en eller anden form for udskrift, at headers bliver sendt. Og når de først er sendt, er det for sent at lave om på dem.

Det kan godt være lidt forskelligt om serveren er sat op til at afbryde et PHP-script, når browseren stopper med at lytte (som den vil gøre, hvis den modtager en location-header), men da headers ikke bliver sendt med det samme, vil den umiddelbart efterfølgende kode stadig blive udført.
Avatar billede hmortensen Nybegynder
25. februar 2005 - 19:29 #10
Dette kan så undgåes ved at sætte en exit; efter
Avatar billede amews_aj Nybegynder
17. april 2005 - 18:04 #11
Lukketid?
Avatar billede gf Nybegynder
14. juli 2005 - 21:30 #12
læg lige nogen svar
Avatar billede amews_aj Nybegynder
26. marts 2006 - 13:43 #13
Svar...
Avatar billede amews_aj Nybegynder
26. marts 2006 - 13:55 #14
Beklager den lange svartid, havde ikke set din kommentar..
Avatar billede gf Nybegynder
26. marts 2006 - 14:10 #15
np

tak for hjælpen

mvh gf
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester