• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eigenartiges Sessionverhalten

freakXHTML

Mitglied
Hallo zusammen,
ich kriege stets die Warnung:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/.../httpd.www/.../profil/templates/headprofil.tpl:1) in /customers/.../.../httpd.www/.../profil/templates/headprofil.tpl on line 1

Eigentlich bin ich mit der Warnung vertraut. Es dürfen keine Ausgaben (Leerzeichen etc.) vor dem session_start() erfolgen. Das ist bei mir auch nicht der Fall. Ich starte die Session bereits vor dem Head. So sieht meine Seite aus:

PHP:
<?php include('templates/headprofil.tpl');?>
 
<link rel="stylesheet" type="text/css" href="/css/styles.css" />
<link rel="stylesheet" type="text/css" href="/css/profil.css" />
 
<?php
include('templates/naviprofil.tpl');
include('templates/bodyprofil.tpl');
?>
 <div >....

In der Datei headprofil.tpl befindet sich mein Head, der in "naviprofil" geschlossen wird. Dadurch habe ich die Möglichkeit, auch im Nachhinein noch den Head zu erweitern.

headprofil.tpl
PHP:
<?php session_start();
ob_start();
include('../php/LoginClass.php'); 
$logger = new UserAdmin('bla'); 
if(!$logger->check_log())
 header('Location: http://www.bla.de');
 ?>
<!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">
<head>
<!--Viele Meta Tags ->
<title>Bla</title>
<script type="text/javascript" src="/javascript/admingreen.js"></script>
<script type="text/javascript" src="/javascript/updatesite.js"></script>

naviprofil.tpl:
HTML:
</head> 
<body id="headadmin">
 <div id="wrapper">

Könnt ihr mir helfen, diese Warnung zu beseitigen. Wenn ich die Seite mit XAMPP lade, erhalte ich keine Warnung. Außerdem habe ich eine andere Unterseite, die zwar eine andere Datei als Head benutzt, aber in dieser steht fast das gleiche drin. Dort erscheint keine Warnung.

Bitte helft mir.

Vielen Dank
lg, freakXHTML
 
Ok, danke für die Tipps. Ich habe jetzt einfach alles nochmal von meiner Domäne gelöscht. Ich werde gleich wieder alles draufladen. Falls es dann immer noch nicht geht, werde ich eure Hinweise anwenden.

Ich verstehe halt nicht, warum es mit XAMPP unter "localhost" einwandfrei funktioniert. Es erscheint keine Warnung und alles ist so, wie ich es haben möchte.

Vielen Dank
lg, freakXHTML
 
Ich habs geschaaaafffft! Es war wirklich ein Bom. Ich habs mit N++ entfernt. Super! Vielen Dank! könnt ihr mir denn sagen, wozu diese quälgeister gut sind und wo die eingefügt werden? Das muss ja beim Upload passieren.

Vielen Dank
lg, freakXHTML
 
Die BOM wird beim Erstellen der Datei hinzugefügt. Dieser "Quälgeist" hat eine nicht unwichtige Bedeutung. Die Byte Order Mark gibt dem Programm, das die Datei öffnet (z.B. Editor, Word), Informationen über die Kodierung. Es gibt Zeichensätze, bei denen ein Zeichen mehrere Byte lang ist. Die BOM gibt also an, wie die Datei zu "interpretieren" ist. ;)
http://de.wikipedia.org/wiki/Byte_Order_Mark
 
Ich habe gemerkt, dass die Datei mit BOM fast 20 kiByte größer war. Ich muss mich aber anscheinend entscheiden: "Hinweise, wie die Datei zu verarbeiten ist" oder "Warnungen und falsche Sessionbearbeitung". Kann man nicht beides haben, wenn BOMs doch zu was gut sind?

Vielen Dank
lg, freakXHTML
 
Bei Webseiten kannst du getrost auf BOM verzichten. Mir ist in meiner Laufbahn noch kein Fall unter gekommen, wo es mir das Genick gebrochne hätte, kein BOM benutzt zu haben :) Du sagst ja schliesslich dem Header, in welchem Zeichensatz er die Seite verarbeiten soll :)
 
Zurück
Oben