Avatar billede Slettet bruger
23. maj 2007 - 16:35 Der er 14 kommentarer og
1 løsning

Header fejl, men hvor?

Jeg sidder med noget kode som ser sådan ud:

<?php
session_start();

if(!$_POST['login']) {
header('location: login.php');
} else {
include('conf/conf.php');
$brugernavn = $_POST['brugernavn'];
$password = $_POST['password'];

$sql = mysql_query("SELECT id FROM brugere WHERE brugernavn = '$brugernavn' || password = '$password'")or die(mysql_error());
if(mysql_num_rows($sql) == '1') {

$_SESSION['logget_ind'] = 1;
$_SESSION['brugernavn'] = $brugernavn;

print "logget ind som: " . $SESSION['brugernavn'];
} else {
print "Forkerte login informationer.";
}
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="<?php echo $PHP_SELF; ?>" method="POST">
<input type="text" name="brugernavn" value="brugernavn"><br>
<input type="password" name="password" value="123456"><br>
<input type="submit" name="login" value="Login">
</form>
</body>
</html>
__________

og får fejlene:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /customers/bjoler.dk/bjoler.dk/httpd.www/b/index.php:15) in /customers/bjoler.dk/bjoler.dk/httpd.www/b/login.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/bjoler.dk/bjoler.dk/httpd.www/b/index.php:15) in /customers/bjoler.dk/bjoler.dk/httpd.www/b/login.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /customers/bjoler.dk/bjoler.dk/httpd.www/b/index.php:15) in /customers/bjoler.dk/bjoler.dk/httpd.www/b/login.php on line 5

jeg har prøvet lidt forskelligt, men kan sq ik finde ud af hvad et er der går galt :-/ en der kan forklare mig det?:)
Avatar billede dkfire Nybegynder
23. maj 2007 - 16:57 #1
Er det din index.php ?
Avatar billede barklund Nybegynder
23. maj 2007 - 16:59 #2
Skulle der tilfældigvis være et linjeskift øverst? Sådan før <?php
Avatar billede masik7 Nybegynder
23. maj 2007 - 20:39 #3
Har du noget kode eller tekst før <?php bla...?
Avatar billede Slettet bruger
23. maj 2007 - 20:44 #4
@dkfire - Det er ikke min index.php, det er login.php

@barklund - I filen er der ikke noget linjeskift:)

@masik7 - Der er intet foran <?php, det eneste HTML der er på siden ser du nederst :)
Avatar billede dkfire Nybegynder
23. maj 2007 - 20:57 #5
Men det er på linie 15 i index.php problemet er.
Vis lige din index.php.
Avatar billede Slettet bruger
23. maj 2007 - 21:40 #6
Dette er min index.php:
______-
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="conf/site-style.css">
</head>
<body>
<div id="logo">logo</div>
<div id="menu">Navigation:<br>
Index<br>
<a href="index.php?p=login">Login</a><br>
Søg profiler<br>
<a href="index.php?p=opret">Opret profil</a>
</div>
<div id="main">
<?php
switch ($_GET['p']) {
  case "index":  include('main.php'); break;
  case "login": include('login.php'); break;
  case "opret": include('opret.php'); break;

  default:  include('http://www.jubii.dk');
  }
  ?>
  </div>
</body>
</html>
_______-
Avatar billede masik7 Nybegynder
23. maj 2007 - 22:28 #7
Så må det være på en af de sider, du inkluderer, at fejlen er på
Avatar billede barklund Nybegynder
24. maj 2007 - 10:45 #8
Jamen det er jo også helt forkert...
Avatar billede dkfire Nybegynder
24. maj 2007 - 12:01 #9
Alt det html du har i din index.php inden du inkludere er fejlen.
Du kan ikke have set noget til browseren, dvs intet html, inden du kalder session_start().
Alt html sendes til browseren!
Avatar billede Slettet bruger
24. maj 2007 - 19:32 #10
hvad mener i? jeg kalder session_start() lige efter <?php
Avatar billede 0xffff Nybegynder
24. maj 2007 - 19:41 #11
dkfire har helt ret, du kalder godt nok session_start() lige efter <?php ... men det er jo en side der er inkluderet. Dvs. den side du er ved at rendere har allerede outputted:

<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="conf/site-style.css">
</head>
<body>
<div id="logo">logo</div>
<div id="menu">Navigation:<br>
Index<br>
<a href="index.php?p=login">Login</a><br>
Søg profiler<br>
<a href="index.php?p=opret">Opret profil</a>
</div>
<div id="main">

Før det kom til din include. Derfor kan du ikke lave en header. Derudover har du flere problemer. Du vil på din side komme til at have flere <html> start tags, da du også inkluderer disse i din login page.
Avatar billede barklund Nybegynder
25. maj 2007 - 09:19 #12
Grundlæggende er det helt helt galt... Du udviser manglende forståelse for både html, php og client-server-arkitektur. Men for at hjælpe dig på kort sigt, kan du øverst i index.php skriver:

<?php ob_start(); ?>

Så vil output ikke blive sendt til klienten før alt dit script er kørt. :)
Avatar billede dkfire Nybegynder
26. maj 2007 - 10:26 #13
Har du fået løst dit problem ?
Avatar billede Slettet bruger
30. maj 2007 - 22:06 #14
lavede det hele om, glemte spørgsmålet :-/ skal i ha points for jeres tid så smid et svar :)
Avatar billede Slettet bruger
05. juli 2007 - 21:10 #15
lukker
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