Avatar billede ciffer Nybegynder
09. september 2005 - 21:46 Der er 14 kommentarer og
1 løsning

Problem med header

Endnu et problem med header på eksperten! Vi får følgende fejl når vi forsøger at kalde det pågældende script: (Warning: Cannot modify header information - headers already sent by...) Vi har tjekket at der ikke er nogle linieskift før eller efter php tags´ene.

<?php
if ($_COOKIE["auth"] == "1") {
    $msg = "<p>You are an authorized user.</p>";
} else {
  //redirect back to login form if not authorized
  header("Location: Test.php");
  exit;
}
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
    print "$msg";
?>
</body>
</html>
Avatar billede erikjacobsen Ekspert
09. september 2005 - 21:51 #1
Jamen, det må der jo være. Er det en inkluderet fil?
Avatar billede ciffer Nybegynder
09. september 2005 - 21:54 #2
Koden du ser er hele koden. Vi anv. ikke include nogle steder. Kan problemet evt. stamme fra filen der kalder denne fil?
Avatar billede erikjacobsen Ekspert
09. september 2005 - 21:56 #3
"filen der kalder denne fil?"  ... det betyder hvad?
Avatar billede erikjacobsen Ekspert
09. september 2005 - 21:59 #4
Med mindre du får en fejl-udskrift i forbindelse med $_COOKIE["auth"]
Avatar billede ciffer Nybegynder
09. september 2005 - 22:00 #5
He he... dårlig formulering :-) Prøver igen. Vi har en login funktion der opretter en cookie og ovenstående fil vil vi bare have til at tjekke at cookien er oprette/sat.
Avatar billede ciffer Nybegynder
09. september 2005 - 22:00 #6
Vi får følgende: Notice: Undefined index: auth in...
Avatar billede erikjacobsen Ekspert
09. september 2005 - 22:05 #7
Ja, det er jo tekst før headeren. Du kunne jo overveje en anden gang at skrive de fejlmeddelelser, der rent faktisk kommer, så "eksperterne" ikke skal spilde deres tid mere end højst nødvendigt.

if (isset($_COOKIE["auth"]) && $_COOKIE["auth"] == "1") {

men det er en dårlig måde at sikre det på, da enhver kan lave sådan en cookie. Sessions er bedre.
Avatar billede xyborx Nybegynder
09. september 2005 - 22:06 #8
if ($_COOKIE["auth"] == "1") {

skal rettes til

if(isset($_COOKIE["auth"]) && ($_COOKIE["auth"]=="1"))
Avatar billede xyborx Nybegynder
09. september 2005 - 22:07 #9
Nå, der var jeg lidt for langsom ;P
Avatar billede ciffer Nybegynder
09. september 2005 - 22:15 #10
erikjacobsen>> Sorry... det skal jeg nok være opmærksom på fremover. Regnede ikke med at en notice var så vigigt... hvorfor kalder de ikke for en warning :-)
Avatar billede erikjacobsen Ekspert
09. september 2005 - 22:17 #11
En notice er knap så vigtig som en warning, som er knap så vigtig som en error, som ...
PS: Jeg samler slet ikke på point.
Avatar billede ciffer Nybegynder
09. september 2005 - 22:24 #12
Mange tak for hjælpen begge to. Vil du heller ikke have point Xyborx?
Avatar billede xyborx Nybegynder
09. september 2005 - 22:52 #13
Nej tak, ikke for så lidt :)

Det er rigtigt at Notices ikke er så vigtige, men de tæller jo også som output før header, og derfor kan det stadig være vigtigt at fortælle om dem. En godt eksempel på snebold-effekten :)
Avatar billede ciffer Nybegynder
09. september 2005 - 23:01 #14
Ok. Helt fint. Lukker. Endnu engang tak :-)
Avatar billede ciffer Nybegynder
09. september 2005 - 23:02 #15
Lukker... igen :-)
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