Headers problem
Jeg har et problem med headers (yes, banebrydende!). Er der noget i følgende filer der ser ud til at kunne være problemet? Se fejlmeddelelsen længere nede...login.php:
<?php
session_start();
require("define.php");
include_once(CLASSES . "class.login.php");
// login med form
if (isset($_POST['login'])) {
if (!$_POST['brugernavn']) {
$fejl = "Du skal skrive dit brugernavn";
} else if (!$_POST['password']) {
$fejl = "Du skal også skrive dit password";
} else {
$brugernavn = trim($_POST['brugernavn']);
$password = md5(trim($_POST['password']));
// gem login-info i cookie, hvis valgt
if (isset($_POST['gem_info'])) {
setcookie("login[brugernavn]", $brugernavn, time()+60*60*24*365, "/", server_addr);
setcookie("login[password]", $password, time()+60*60*24*365, "/", server_addr);
}
$login = new login();
$login->brugernavn = $brugernavn;
$login->password = $password;
$login = $login->loginMedForm();
if ($login == 0) {
$fejl = "Fejl i brugernavnet";
} else if ($login == 1) {
$fejl = "Fejl i passwordet";
} else if ($login == 2) {
$fejl = "Du blev logget ind";
header("Location: http://" . SERVER . "/admin/");
// Warning: Cannot modify header information - headers already sent by (output started at /sti/til/class.mysql.php:305) in /sti/til/login.php on line 33
// linje 305 er filen sidste (tomme) linje
}
}
}
// login med cookies
else if (isset($_COOKIE['login']['brugernavn'],$_COOKIE['login']['password'])) {
$login = new login();
$login->brugernavn = $_COOKIE['login']['brugernavn'];
$login->password = $_COOKIE['login']['password'];
$login->loginMedCookie();
}
include_once(INCLUDES . "hoved_top.inc");
include_once(INCLUDES . "hoved_bund.inc");
include_once("submenu.inc");
?>
<div class="login_form">
<?php
if (isset($fejl)) {
echo '<span id="fejl" style="color:red;">* ' . $fejl . '</span><br /><br />';
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label for="brugernavn">Brugernavn:</label> <input name="brugernavn" id="brugernavn" type="text" value="<?=$_REQUEST['brugernavn']?>" /><br />
<label for="password">Password:</label> <input name="password" id="password" type="password" /><br />
<label for="gem_info">Gem information:</label> <input type="checkbox" name="gem_info" id="gem_info" title="Gem information" /><br />
<input type="submit" name="login" value="Login" />
</form>
</div>
<?php
include_once(INCLUDES . "fod.inc");
?>
----------------------------------------
class.login.php:
<?php
include_once("class.sql_manager.php");
class login {
var $brugernavn;
var $password;
/**
* Forsøger at logge ind via en cookie
* Returnerer adminrolle hvis login lykkes, ellers null.
*/
function loginMedCookie() {
$sql_mngr = new sql_manager();
$sql = $sql_mngr->forbered_sql($sql_mngr->tjek_login_og_hent_admin_rolle, $this->brugernavn, $this->password);
$res = $sql_mngr->sql_select($sql);
if (is_string($res)) {
$_SESSION['adminrolle'] = $res;
$_SESSION['brugernavn'] = $_COOKIE['login']['brugernavn'];
}
return;
}
/**
* Logger ind via formen, tjekker loginoplysninger, og finder adminrolle
* Returnerer 0, 1 eller 2, hhv. hvis brugernavnet ikke eksisterer, forkert password, eller succesfuldt login.
*/
function loginMedForm() {
$sql_mngr = new sql_manager();
$sql = $sql_mngr->forbered_sql($sql_mngr->hent_bruger_info, $this->brugernavn);
$res1 = $sql_mngr->udfoer_sql_returner_assoc_array($sql);
if ($res1[0]['username'] != $this->brugernavn) {
// brugernavnet findes ikke
return 0;
} else if ($res1[0]['password'] != $this->password) {
// forkert password
$_SESSION['brugernavn'] = $this->brugernavn;
return 1;
} else {
// finder og gemmer adminrolle
$sql = $sql_mngr->forbered_sql($sql_mngr->hent_admin_rolle, $res1[0]['id']);
$res2 = $sql_mngr->udfoer_sql_returner_assoc_array($sql);
$_SESSION['adminrolle'] = $res2[0]['rolle'];
$_SESSION['brugernavn'] = $this->brugernavn;
return 2;
}
}
}
?>