Gå til innhold

[LØST] - Problemer med "Cannot modify header information"


Anbefalte innlegg

Skrevet (endret)

Hei. jeg får ikke til å legge verken Cookies eller Session til i scriptene mine. på login scriptet mitt så bruker cookies får jeg opp

 

Warning: Cannot modify header information - headers already sent by (output started at C:\server\www\www\index.php:8) in C:\server\www\www\_validate.php on line 30

 

Warning: Cannot modify header information - headers already sent by (output started at C:\server\www\www\index.php:8) in C:\server\www\www\_validate.php on line 31

 

Warning: Cannot modify header information - headers already sent by (output started at C:\server\www\www\index.php:8) in C:\server\www\www\_validate.php on line 35

..

 

og nesten det samme med sessions..

 

Linje 30:setcookie("cookieusername", $name,time()+86400);

Linje 31:setcookie("cookiepassword", $password,time()+86400);

Linje 35:setcookie("userid", $row[id],time()+86400);

 

Hvorfor får jeg opp disse?

Takker for svar

 

og når jeg bruker sessions

 

19: session_register("bruker");

20: session_register("pass");

 

 

Takker for svar her også jeg :D

 

Hilsen Dryper

Endret av Dryper
Videoannonse
Annonse
Skrevet

Eit lite søk både her på forumet og på nettet generelt ville nok fortalt det ka som er galt rimelig fort ettersom at dette er eit ganske vanlig spørsmål :)

 

Feilen kommer at at du sender output før du prøver å sette kaker (session bruker kaker). Den late løsningen er å legge til ob_start() i starten av det første skriptet som blir utført og da er problemet løst. Den mer 'korrekte' metoden blir å finne ut kor du sender output og kanskje omstrukturer slik at du blir ferdig med all output før du kommer til login skripetet.

 

Det er og selfølgelig mulig at du ikkje sender output med vilje, eit space før <?php eller lagring med BOM i UTF-8 kan vere grunnen til dette, søk i forumet så finst det nok ein løsning.

 

 

* Beklager vist dette ble litt rotete, har litt dårlig tid

Skrevet

Som feilmeldingen tilsier har du nok litt output i linje 8 i index.php. Når man først sender litt output blir også headere satt/sendt (naturlig nok), og da kan man ikke lengre sende ytterligere headere.

Skrevet
Som feilmeldingen tilsier har du nok litt output i linje 8 i index.php. Når man først sender litt output blir også headere satt/sendt (naturlig nok), og da kan man ikke lengre sende ytterligere headere.

 

 

Jeg er ikke helt med på hvordan dette fungerer. har søkt en del nå men får det ikke til å funke :S

 

Index scriptet mitt ser slik ut:

<html>
<head>
<link rel="stylesheet" href="css/standard.css" type="text/css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Sniken Auksjon</title>

</head>
<?

include "config.php";
?>



<div class="window">
<div class="header"><img src="images/header_logo.jpg" width='1200' /></div>
<div class="menu">
<?
include "menu/menu.php";
?>

</div>
<div class="mainTitle"> Globalmafia.sytes.net </div>
<div class="mainText">
<?
$id = $_GET['id'];

if ($id == "home"){ 
include("nyheter.php"); }
// Main Tab
else if ($id == "forum"){ include("forum.php"); }
else if ($id == "about"){ include("about.php"); }

//User interaction TAB
else if ($id == "login"){ include("login.php"); }
else if ($id == "registrer"){ include("registrer.php"); }
else if ($id == "registrert"){ include("registrert.php"); }
else if ($id == "membersarea"){ include("membersarea.php"); }


//PROSJECT TAB
else if ($id == "aboutprojects.php"){ include("aboutprojects.php"); }

//Support Tab
else if ($id == "knowlegde"){ include("support/knowlegde.php"); }
else if ($id == "documentation"){ include("support/documentation.php"); }

//OTHER
else if ($id == "logedin"){ include("logedin.php"); }

else { include ("nyheter.php"); }
  ?>
  </div>
</div>

</html>

 

og login scriptet ser slik ut:

 

<?php
include ("config.php");

$bruker = mysql_real_escape_string($_POST['Brukernavn']);
$pass = mysql_real_escape_string($_POST['Passord']);
$status = $_SESSION['bruker'];

if (!$con){
die ('Kunne ikke koble til databasen. Feil:</br>' . mysql_error());
}



$sel = mysql_query("SELECT * FROM brukere WHERE Brukernavn = '$bruker' AND Passord = '$pass'");
$omrett =mysql_num_rows($sel);

if ($omrett == 1) {
mysql_query("UPDATE brukere SET Status = 'Innlogget' WHERE Brukernavn = '$bruker' ");
session_register("bruker");
session_register("pass");
echo "Du er nå logget inn.";
}
else {
echo "Brukernavnet eller passordet du skrev inn er feil.";
}

?>

 

 

hva er det da jeg må gjøre.. har prøvd med det ob_start() greiene men fikk det ikke til å funke..

Skrevet (endret)

Feilen er som eg nemnte i den første posten min at du sender informasjon til webleseren _før_ du setter header informasjon (header(), sessions eller cookies) for å fikse dette på enklest mulig måte så kan du legge til <?php ob_start(); ?> heilt i toppen av index.php. Det denne funksjonen gjør er å starte ein buffer som samler opp all tekst du sender til weblesere og sender det til brukeren i det programmet ditt er ferdig.

Endret av Runar0
Skrevet
Feilen er som eg nemnte i den første posten min at du sender informasjon til webleseren _før_ du setter header informasjon (header(), sessions eller cookies) for å fikse dette på enklest mulig måte så kan du legge til <?php ob_start(); ?> heilt i toppen av index.php. Det denne funksjonen gjør er å starte ein buffer som samler opp all tekst du sender til weblesere og sender det til brukeren i det programmet ditt er ferdig.

 

Funka det :D

 

Nå. hvordan setter jeg en Tråd til "Løst"

:D

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...