Probleme mit session_start()

Denk nicht von mir das i faul sei...i bin ansich sehrwohl in der Lage und Willens PHP zu proframmieren, und ansich verstehe ich auch die Fehlermeldung. Mein Prob. is nur, das ich bereits alle mir bekannten Möglichkeiten zur Problembehebung versucht habe und nicht mehr weiter weiß. Darum habe ich hier gepostet, und nicht etwa weil ich faul bin. Also halte dich zurück...Musst mir ja ned helfen wennst ned willst, gibt auch noch andere die sich auskennen, ned nur dich@Gumbo
 
Ich möchte dir helfen. Nur ich möchte dir nicht in dem Sinne helfen, dass ich dir einfach eine Lösung hinklatsche. Dafür ist das Problem einfach zu simpel und zu oft diskutiert, als dass es als ein zu spezielles oder seltenes Problem gelte.
Ich möchte dir viel lieber in dem Sinne helfen, dass ich dir Hinweise gebe und dich in die richtigen Richtung weise, um die Ursache wirklich zu verstehen und das Problem selbstständig lösen zu können.

Falls dir das jedoch nicht ausreicht, kannst du auch darauf warten, bis dir hier jemand die Lösung präsentiert.
 
Das reicht mir natürlich aus, es ist ja auch in meinem Sinne das Problem und die Lösung zu verstehen. Darum bitte ich dich mir deinen Lösungsvorschlag etwas genauer zu erklären, da ich ihn so wie er oben steht nicht verstehe...wie gesagt, bin leider kein PHP-Profi
 
Der Header (Kopf) einer HTTP-Nachricht beschreibt unter anderem den Köper der Nachricht, also die eigentliche „Nutzlast“. Ist es beispielsweise eine Klartext-Nachricht, HTML-Dokument oder Grafik etc. In diesem Header werden auch Informationen über Cookies geschickt.
Ist nun aber bereits eine Ausgabe erfolgt und wurde sie nicht gepuffert, wurde der Header der Antwort auch geschickt und ist damit logischerweise auch nicht mehr veränderbar.
 
Hab aus der Datei oben des session_start entfernt...damit sind die Fehlermeldungen (vorerst) weg. Die Datei oben sendet Login-Daten an folgendes Script (login.php):

Code:
<?php

include "db_connect.php";

session_start ();

$seite = $REQUEST['seite'];

if ($seite == "ansicht")
	$seite = $seite.".php?thema=".$REQUEST['thema'];
else
	$seite = $seite.".php";

$sql = "SELECT Id, Nickname FROM benutzerdaten WHERE
	Nickname like '".$_REQUEST["username"]."' AND
	Kennwort = '".sha1($_REQUEST["passwort"])."';";

$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
{
	$data = mysql_fetch_array ($result);

	$_SESSION['user_id'] = $data['Id'];
	$_SESSION['user_name'] = $data['Nickname'];
	
	header ("Location: ".$seite);
}

else
{
	$_SESSION['fehler'] = "fehler";
	
	header ("Location: ".$seite);
}

?>

Hier bekomme ich ähnliche bzw. die gleichen Fehlermeldungen wie zuvor auf der anderen Seite, einmal mit dem Verweis in die Zeile, in der session_start steht, und einmal zu der Zeile mit header...

Kann mir jemand sagen warum?! Hab echt keine Ahnung mehr was ich noch versuchen soll...früher gings immer so...
DANKE
 
Zuletzt bearbeitet:
Die Sitzungs-ID kann – je nach Einstellung – über drei verschiedene Wege „mitgenommen“ werden: per Get-Methode als URL-Argument, per Post-Methode als Formular-Element oder per Cookie. Je nach Situation können es auch mehrere dieser Wege sein. Ist jedoch die Übergabe per Cookie erlaubt (session.use_cookies-Konfigurationsoption) oder sogar nur darauf beschränkt (session.use_only_cookies-Konfigurationsoption), wird auch versucht, die entsprechende Header-Felder zu setzt.
 
Hab aus der Datei oben des session_start entfernt...damit sind die Fehlermeldungen (vorerst) weg. Die Datei oben sendet Login-Daten an folgendes Script (login.php):

Code:
<?php

include "db_connect.php";

session_start ();

$seite = $REQUEST['seite'];

if ($seite == "ansicht")
	$seite = $seite.".php?thema=".$REQUEST['thema'];
else
	$seite = $seite.".php";

$sql = "SELECT Id, Nickname FROM benutzerdaten WHERE
	Nickname like '".$_REQUEST["username"]."' AND
	Kennwort = '".sha1($_REQUEST["passwort"])."';";

$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
{
	$data = mysql_fetch_array ($result);

	$_SESSION['user_id'] = $data['Id'];
	$_SESSION['user_name'] = $data['Nickname'];
	
	header ("Location: ".$seite);
}

else
{
	$_SESSION['fehler'] = "fehler";
	
	header ("Location: ".$seite);
}

?>

Hier bekomme ich ähnliche bzw. die gleichen Fehlermeldungen wie zuvor auf der anderen Seite, einmal mit dem Verweis in die Zeile, in der session_start steht, und einmal zu der Zeile mit header...

Kann mir jemand sagen warum?! Hab echt keine Ahnung mehr was ich noch versuchen soll...früher gings immer so...
DANKE
 
Jegliches Zeichen vor dem Starttag des PHP-Blocks gelten als Ausgabe, auch Leerzeichen, Zeilenumbrüche oder andere nicht sichtbare Zeichen.
In der Fehlermeldung steht doch aber auch, wo die Ausgabe begann („output started at foobar:x“). Bist du diesem Hinweis schon mal gefolgt?
 
Zurück