Sessions

Loveboat

Erfahrenes Mitglied
Hallo Leute,

auch ich bin mal wieder mit einem kleinen Problemchen am Start. Erstmal danke für die Hilfe beim letzten. :)

Heute habe ich ein Problem mit Sessions. Habe mir auch schon hier Hilfen gesucht aber noch keine konkrete Lösung meines Problems gefunden.

Situation:
Ich habe eine Weinkarte programmiert bei der ein user sich seine Lieblingsweine notieren kann. Damit seine Lieblingsweine auch während seiner Sitzung gemerkt werden kann, speichere ich den Wein und die Menge:

PHP:
$_SESSION["notiz"] = $stack;
$_SESSION["menge"] = $menge;

Das funktioniert auch soweit alles, nur mein Problem ist, das ich beim Aufruf der Seite jedesmal den folgenden Session-Fehler erhalte:


Code:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent on line 2


Und in Line 2 steht:
PHP:
session_start();

Was mache ich hier falsch oder was habe ich über Sessions falsch verstanden?

Danke für Eure hilfe.

Gruß
Loveboat
 
Hi,

es dürfen vorher keine Ausgaben gemacht werden. Entweder Du setzt das ganz an den Anfang, oder Du nutzt Output-Buffering. Da gibt's übrigens einen neuen Sticky am Anfang dieses Forums.

LG
 
Hi,

die Seite weinkarte.php enthält HTML- und PHP-Code, aber selber beginnt mein Code für diese seite so:

PHP:
<?
session_start();
....
echo '
<html>
........';

Demnach mache ich doch vorher keinen Output? Oder könnte es daran liegen, dass diese Datei weinkarte.php als source eines übergeordneten iframes ist?

Gruß
Loveboat
 
muss ich mein session_start() in die index.php machen? Dies habe ich auch schon gemacht was dann zur Folge hatte, das ich in der weinkarte.php die Variablen in $_SESSION eingetragen habe, welche aber danach wieder "verloren gegangen" sind.

Was mache ich falsch?
 
Je nach server mußt die bei jeden Links die Session_id mit übergeben.
Der inhalt einer Session geht nicht verloren, Meißten aber die Session nummer anhang dem kann er erkennen um welche session es sich handelt. Werden oft auch in cokies gespeichert

PHP:
<a href="linkdatei?PHPSESSID=<?=SESSION_ID;?>" ></a>


Mfg Splasch
 
Hi Splash,

danke für Deine Info. Habe natürlich gleich mal ausprobieren wollen, aber leider habe ich immer noch Probleme. Habe jetzt NUR in meiner index.php folgenden code am Anfang der Datei, bevor irgendetwas ausgegeben wird:

PHP:
<?
session_start();


Aber trotzdem erhalte ich immer gleich eine Fehlermeldung:

Code:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /httpd/www.xxxxxxxxxxxxxxx.de/www/index.php:1) in /httpd/www.xxxxxxxxxxxxxxx.de/www/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /httpd/www.xxxxxxxxxxxxxxx.de/www/index.php:1) in /httpd/www.xxxxxxxxxxxxxxx.de/www/index.php on line 2


Ich verstehe langsam nicht mehr wo mein Fehler liegt, zumal das ganze vorher funktionierte, ohne Fehler. Kann es auch an der PHP-Config liegen? "session.auto_start" ist bei mir vom ISP auf off gestellt.

Danke und Gruß
Loveboat
 
Auch Leerzeichen sind Daten, die bereits an den Browser gesendet werden.

Von daher solltest du sicherstellen, dass wirklich nichts vor dem öffnenden PHP Tag steht.
Falls das auch nicht hilft, wäre es sinnvoll einmal beide Dateien komplett zu veröffentlichen.
 
Hi Felix,

danke für Deine schnelle Antwort. Also hier mal die Details

PHP:
<?
session_start();
echo session_id();
?>

Output:
Code:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /httpd/www.weingut-riffel.de/www/neu/sessiontest.php:1) in /httpd/www.weingut-riffel.de/www/neu/sessiontest.php on line 1
0b250f01e7b72e58ed7dfcc5c23ce9be

http://www.weingut-riffel.de/neu/sessiontest.php

Mehr steht in dieser Datei nicht drin. warum erhalte ich dann die Fehlermeldung?

Vielleicht ist es ein Fehler in der php.ini des ISP? Hier mal ein link zur phpinfo()

http://www.weingut-riffel.de/neu/phpinfo.php


Danke und Gruß
Loveboat
 
Zurück