Avatar billede illuzion Nybegynder
24. april 2005 - 00:43 Der er 3 kommentarer og
1 løsning

Fejl i headers

Ja landet ligger sådan at jeg er igang med at kode et admin system til min side, selve login delen virker, men jeg får en masse irriterende header fejl.

De første fejl (admin.php):
---------
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/index.php:4) in /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/admin.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/index.php:4) in /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/admin.php on line 37
---------

Koden der giver fejlen:
---------
<?php
session_start();
include ('inc.config.php');

if($username){
echo ('
<br />
<h2>Nyhedsdel</h2>

<a href="./?admin=newsadd" title="tilføj nyhed">Tilføj</a><br />
<a href="./?admin=newseditlist" title="ændre en allerede tilføjet nyhed">Ændre</a><br />
<a href="./?admin=newsdellist" title="slet nyhed">Slet</a><br />
<br />
<a href="../" title="Tilbage til hovedsiden">Tilbage</a> | <a href="logout.php" title="Log ud af admin systemet">Logout</a><br />
');
}
?>
<?
if(!$username){
header ('location: ./?admin=login ');
}
?>
---------

Dernæst er der siden hvor man logger ind (login.php)
den giver fejlen:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/index.php:4) in /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/login.php on line 2

Login systemet:
---------
<?php
session_start();
include "inc.config.php";
if($referer == "login") {
$sql = mysql_query("SELECT * FROM USERS WHERE username = '$username'");
$btjek = mysql_fetch_array($sql);
if($password == $btjek[password]){
$username = $btjek[username];
session_register("username");
header("location: ./");
}
else{
$ermsg = "Forkert brugernavn eller password \n";
}
}
if($username){
header("location: ./");
}
else{

if($ermsg){
echo "". $ermsg . "";
}

?>

<FORM ACTION="<?=$PHP_SELF?>" METHOD="POST" NAME="FORM">
<input type="hidden" name="referer" value="login">
<input class="input" name="username" type="text">Username <br />
<input class="input"  name="password" type="password">Password <br />
<input class="submit" type="submit" value="login">
</form>

</BODY>
</HTML>
<?
}
?>
---------

Hvis der er en venlig sjæl som ved hvad fejlen er, og som vil hjælpe, vil jeg blive meget glad :)
Avatar billede sungdk Nybegynder
24. april 2005 - 00:48 #1
<?php session_start();

Session skal stå HELT oppe ved starten af din kode...

Og du bruger header(), hvor du er nødt til at bruge:

echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=../ny_side.php">';

Håber det virker så...
Avatar billede illuzion Nybegynder
24. april 2005 - 00:56 #2
Nu kan jeg se alle siderne, dog kommer der stadig denne fejl, selvom jeg har rykket session_start(); helt op i toppen af siderne.

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/index.php:4) in /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/admin/admin.php on line 1
Avatar billede ranglen Nybegynder
24. april 2005 - 00:58 #3
For at være helt præcis, så vil denne kode også virke:

<?php



session_start();
?>

I det øjeblik du påbegynder phpkoden, bliver der ikke outputtet noget til klienten :)

Men står der så meget som et mellemrum før <?php så vil det fejle
Avatar billede illuzion Nybegynder
24. april 2005 - 01:02 #4
Fik selv rettet fejlen =).
Simpelthen fordi jeg havde glemt session_start på en af mine sider :)

Tusind tak for hjælpen!
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