Problem mit Session

  • Themenstarter Themenstarter Sessionnase
  • Beginndatum Beginndatum
S

Sessionnase

Hi.
Ich erhalte immer folgende fehlermeldungen wenn ich meine Seite aufrufen will:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\index.php:1) in C:\xampp\htdocs\index.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:1) in C:\xampp\htdocs\index.php on line 2

Wo liegt denn da der Fehler? Ich habe extra darauf geachtet dass session_start() ganz am Anfang steht.


Datei index.php:
PHP:
<?php
session_start();

// Login
if (isset($_POST['loginform'])) {
	include('mysql.php');
	if (!empty($_POST['loginuser']) && !empty($_POST['loginpass'])) {
		$abfrage = $mysql_query('SELECT Login, Passwort FROM user WHERE Login="'.$_POST['loginuser'].'" AND Passwort="'.md5($_POST['loginpass']).'";');
		if (!$abfrage) {
			echo(mysql_error());
		}
	}
	if ($abfrage->num_rows === 1 ) {
		$_SESSION['login'] = true;
		$_SESSION['user'] = $user['Login'];
	}
	mysql_close($con);
}

// Logout
if (isset($_GET['seite']) && $_GET['seite'] == 'logout') {
	unset($_SESSION['login']);
	unset($_SESSION['user']);
}

// Registrieren
if (isset($_POST['registerform'])) {
	include('mysql.php');
	if (!empty($_POST['registerlogin']) && !empty($_POST['registerpass']) && !empty($_POST['registervorname']) && !empty($_POST['registername'])) {
		$query = 'INSERT INTO user VALUES ("'.$_POST['registerlogin'] . '", "'.md5($_POST['registerpass']).'", "'.$_POST['registervorname'] .'", "'.$_POST['registername'].'")';
		$abfrage = $mysql_query($query);
		if (!$abfrage) {
			echo($mysql_error());
		}
	}
	mysql_close($con);
}

// Passwort ändern
if (isset($_POST['changeform'])) {
	include('mysql.php');
	if (!empty($_POST['changepass'])) {
		$sql = 'UPDATE user SET Passwort=\'' . md5($_POST['changepass']) . '\'WHERE Login = \'' .$_SESSION['user']. '\'';
		$mysqli->query($sql);
		echo $mysqli->error;
	}
	mysql_close($con);
}

$navigation = array(
	'home' => 'home.php',
	'pwchange' => 'pwchange.php',
	'login' => 'login.php',
	'register' => 'register.php'
);

if (isset($_GET['seite']) && !empty($navigation[$_GET['seite']])) {
	$aktuelleseite = $navigation[$_GET['seite']];
} else {
	$aktuelleseite = $navigation['home'];
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Meine PHP-Testseite</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
</head>

<body>

<div id="fullsite">
	<div id="title">
		<h1>Meine PHP-Testseite</h1>
	</div>
	<div id="navigation">
		<h2>Navigation</h2>
		
		<?php
		if ($_SESSION['login'] === true) {
		?>
				<a href="?seite=home">Home</a><br />
				<a href="?seite=pwchange">Passwort ändern</a><br />
				<a href="?seite=logout">Logout</a>
		<?php
		} else {
		?>
				<a href="?seite=login">Login</a><br />
				<a href="?seite=register">Registrieren</a>
		<?php
		}
		?>
		
	</div>
	<div id="content">
		<?php
		if ($_SESSION['login'] === true||$_GET['seite']==="login"||$_GET['seite']==="register") {
			include "$aktuelleseite";
		}
		?>
	</div>
</div>
</body>
</html>
 
Leider nein.
Ich hab schon einbisschen gegoogelt und alle Leerzeichen gelöscht.
 
Ja ich hatte eine BOM da drin.
Kaum ist das Ding weg, schon geht es. :)

Vielen Dank!
 
Zurück