choffo Skrevet 18. januar 2006 Del Skrevet 18. januar 2006 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
Martin A. Skrevet 18. januar 2006 Del Skrevet 18. januar 2006 Det er ikke værre enn at du legger til "<?php session_start(); ?>" øverst i scriptet, evnt i toppen av et includescript. Lenke til kommentar
choffo Skrevet 18. januar 2006 Forfatter Del Skrevet 18. januar 2006 (endret) 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.. Måtte legge hele <?php> koden øverst i .php fila. Endret 18. januar 2006 av choffo Lenke til kommentar
0lav Skrevet 19. januar 2006 Del Skrevet 19. januar 2006 Det er heller ikke værre enn at du legger til "<?php ob_start(); ?>" øverst i scriptet.. Lenke til kommentar
T0mmy Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 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
neivoll Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 Det går jo alltids an å bruke html(meta) redirect da, f. eks <meta http-equiv='refresh' content='0; url=index.php?page=whatever'> Lenke til kommentar
T0mmy Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 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
neivoll Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 (endret) De trenger ikke stå i headeren nei. Prøv deg fram. Endret 21. januar 2006 av anners Lenke til kommentar
Albino Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 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
T0mmy Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 (endret) 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 21. januar 2006 av T0mmy Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå