Session Start Frage

Hi an alle .-)

Also ich kenn mich mittlerweile ganz gut mit PHP aus. Nur mit Session habe ich mich erst neuerdings befasst, bin aber denke ich schon ganz gut durch, funtzt auch das meiste. Habe auch eine Seite die schon funktionstüchtig ist im Web. ich wollte nun meine Seite erneuern, und habe desshalb eine test Url bei mir eingerichtet, wo ich meine neue Seite erstelle und somit aber die alte solange noch drin bleibt.

Die index Seite habe ich genau so wie sie war übernommen, nur arbeite ich nicht mehr mit divs, also habe ich auf de Index Seite nur die Divs mit Tables ersetzt.

In meiner original Seite ist ein session_start() drin in der Index Seite, welches keine Fehler erzeugt. In meiner neuen Seite bekomm ich den Fehler, dass „Header already sent“, was ja gar net sein kann, da ich die test Seite gerade erstelle, das heisst, es gibt noch keine andre Seite als die index und die main.php, in welchen nichts mit Session vorkommt, ausser auf der Index Seite.

Wieso bekomm ich dann aber diese Fehlermeldung?

Nur zur Sicherheit gebe ich mal den code der Index Seite hier rein:
[PHP]

<?php session_start(); include("inc/dat/blocker.php"); include("inc/meta/header.php"); ?>
<?php include("inc/menu/menu.php") ?> <?php $Liste = array( 'homepage' => 'files/main.php', ); if(array_key_exists('p', $_GET)) {if(array_key_exists($_GET['p'],$Liste)) { include $Liste[$_GET['p']];} else {include $Liste['homepage'];}}else {include $Liste['homepage'];} ?> <?php include("inc/menu/menu2.php") ?>
<?php include("inc/meta/footer.php") ?>

[/PHP]Meine Fehlermeldung ist wie folgt:

[B]Warning[/B]: session_start() [[function.session-start](http://test.gohstriders.de/function.session-start)]: Cannot send session cache limiter - headers already sent (output started at /var/www/xxx/test/index.php:1) in [B]/var/www/xxx/test/index.php[/B] on line [B]1[/B]

Mal nur zu der Session-Sache: Die Fehlermeldung kommt immer dann, wenn vor dem Aufruf von session_start() eine Ausgabe an den Browser geschickt wird. Ausgabe ist zum Beispiel alles, was nicht innerhalb von <?php ... ?> steht. Falls keine Leerzeichen oder Zeilenumbrüche vor dem ersten <?php stehen, ist es mit Sicherheit eine Byte Order Mark. Müsstest du in deinem Editor einstellen können.

Danke für die Antwort.

Ja es ist NICHTS vor, oder innerhalb dem ersten <?php, aber leider hört mein können bei BOM komplett auf, mit den ganzen Bytefolgen und ähnlichem kenn ich mich nicht aus, hat jemand, oder du einen Link für mich wo ich dazu was finden kann?

Einstellungen im Editor… hmmm, also ich schreibe meine Seiten, bzw Code komplett mit wordpad, oder meinst du was andres? Hätte im Notfall aber auch dreamweaver irgendwo.

Auf den Server hab ich leider keinen Zugriff auf die phpini, könnte aber nachfragen, würden die sicher für mich machen, kenn die soweit ganz gut.

EDIT:
Das komische ist, dass wenn ich das session_start weg mach, geht auch die Session variablenabfrage net, was ich als test mal gemacht hab, geb ich session_start ein, kommt die fehlermeldung, aber funtzen tuts dann, ist doch auch komisch oder net?

Eine BOM sind einfach „zwei bis drei unsichtbare Bytes“ (je nach Encoding). Auch wenn die nicht im Editor zu sehen sind, sind sie dennoch da (siehe Wikipedia-Link).

Ich weiß nicht genau, wie und ob das im Wordpad einstellbar ist. Aber ich bin mir sicher, dass das das Problem ist. Du solltest den Editor wechseln. Notepad++ oder Geany oder natürlich auch Dreamweaver haben mit Sicherheit eine Einstellung, um BOMs zu deaktivieren.

Detailfragen dürften sich hervorragend googlen lassen: [google]byte order mark entfernen[/google] oder so.

Das komische ist, dass wenn ich das session_start weg mach, geht auch die Session variablenabfrage net, was ich als test mal gemacht hab, geb ich session_start ein, kommt die fehlermeldung, aber funtzen tuts dann, ist doch auch komisch oder net?

Bin ich mir gerade nicht sicher, ob das komisch ist. Aber normalerweise sollte das alles gar nicht passieren, weil die Header bei Aufruf von session_start noch nicht gesendet wurden. (siehe vorheriger Post)