Gå til innhold

"Headers already sent"


Anbefalte innlegg

Hei! har problemer med feilmeldingen:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/vhosts2/a/t/atomicsolutions.no/www/try2/login_resultat.php:9) in /home/vhosts2/a/t/atomicsolutions.no/www/try2/login_resultat.php on line 18

 

Har forstått at dette er et problem med Sessions, headers, etc. i forbindelse med http standarden på webservere med Microsoft® IIS.

 

Kan noen hjelpe meg med dette?

 

Her er koden:

?php
$brukernavn = "henning";
$MD5_passord = "86c7c929d73e1d91c268c9f18d121212";
$brukerdata = $_POST['brukernavn'];
$passord = md5($_POST['passord']);


if($passord == "$MD5_passord" && $brukerdata == "$brukernavn"){
  ob_start();
     session_start();
   $_SESSION['innlogget'] = 1;
   $_SESSION['brukernavn'] = $brukernavn;
   $_SESSION['passord'] = $MD5_passord;
   
header ("location: loggetinn.php");
ob_end_flush();
}
   
   else{
       echo "Feil brukernavn eller passord! Sjekk at Caps Lock ikke er aktivert og prøv igjen.";
   }
?> 

<?php

if($_SESSION['brukernavn'] && $_SESSION['passord'])
{
ob_start();
session_start();
   echo " <p>Heisann</p> <br>
   Du er nå logget inn med brukernavn: $brukernavn.
   <br>
   <a href=\"loggut.php\">Logg ut</a>

   ";
ob_end_flush();

}
else
{
   echo "Du må være logget inn for å nå disse sidene! <a href=\"login.php\">Logg inn</a>!";
}

?> 

Lenke til kommentar
Videoannonse
Annonse
Det er ikke værre enn at du legger til "<?php session_start(); ?>" øverst i scriptet, evnt i toppen av et includescript.

5457546[/snapback]

 

Takk skal du ha.. Session funket, men

header("location: loggetinn.php");

funker ikke.

 

Denne feilmeldingen kommer opp:

 

Warning: Cannot modify header information - headers already sent by (output started at /home/vhosts2/a/t/atomicsolutions.no/www/try2/login_resultat.php:10) in /home/vhosts2/a/t/atomicsolutions.no/www/try2/login_resultat.php on line 23

 

EDIT: Løste problemet. Dumme meg..:p Måtte legge hele <?php> koden øverst i .php fila.

Endret av choffo
Lenke til kommentar

Hei

 

Jeg har et lite problem angående "Headers already sent":

 

"index.php" inkluderer to sider, innlegg eller skrivny, avhengig av "switch case"-funksjonen.

"index.php?page=innlegg&nr=alle" viser alle innlegg, mens "index.php?page=innlegg&nr=6" viser innlegg nr 6 osv.

"index.php?page=skrivny" inneholder et skjema som har METHOD=post og ACTION=nyttinnlegg.php

"nyttinnlegg.php" inneholder valideringskode, som gir feilmelding dersom noen av feltene mangler. Når alt er godkjent skrives det til en fil, pluss at det sendes en bekreftelsesmail.

 

Problemet er at dersom alt er riktig, vil jeg at enten "index.php?page=innlegg&nr=alle" eller "index.php?page=innlegg&nr=X" skal vises (har ikke bestemt meg ennå). "X" er da innleggsnummeret til det innlegget som nettopp ble skrevet.

 

Ved å bruke header("location: $densidenjegvilgåtil") får jeg beskjed om at "Headers already sent". Hvordan kan jeg unngå dette? Eller finnes det en annen måte for å bli "redirectet" til en av de to sidene? (Vil helst ikke bruke JavaScript.)

Lenke til kommentar
Det går jo alltids an å bruke html(meta) redirect da, f. eks

<meta http-equiv='refresh' content='0; url=index.php?page=whatever'>

5474672[/snapback]

 

Skal ikke META-tagger stå i HEADER på dokumentet? I så fall er jeg jo like langt. Jeg må jo fortsatt bli redirectet til siden som inneholder denne META-taggen, og da kan jeg like gjerne bli redirectet til det egentlige dokumentet.

Lenke til kommentar

Hvis du skal bruke header(...) så må det kjøres før noen html-kode er skrevet ut. Som regel er vel HTML-taggen det først som skrives ut. Jeg bruker å lage en top.php-fil som jeg inkluderer i hvert skript, men top.php inkluderer to filer: pretop.php og posttop.php. pretop.php inneholder bare kode som ikke skriver ut noe html-kode, mens i posttop.php begynner jeg å skrive ut html-kode. Dermed kan jeg bare inkludere pretop.php der jeg skal bruke header(...).

 

Satser på at noen skjønte dette... :)

Lenke til kommentar

Tusen takk Albino!

 

Har prøvd med noen enkle funksjoner nå, og foreløpig ser det ut til at det vil virke.

 

Modifiserte tipset ditt litt, slik at index.php bare inkluderer din "pretop.php" når det trengs. Er nemlig bare ved valideringen av skjemaet at header() skal brukes.

 

Tror det vil virke, hvis ikke poster jeg på nytt i denne tråden.

 

EDIT: Stilte et nytt spm som jeg fant svar på selv.

Endret av T0mmy
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...