PHP SESSION <-> Cookie

SwingerLive

Mitglied
Hallo,

ich betreibe ein Portal, bei dem ich bisher sämtliche Userdaten per Cookie festgehalten habe ($nick und $passwort)
Da die Akzeptanz zum Cookie aber nicht so groß ist, möchte ich nun alles auf Sitzungsverwaltung mit PHP umstellen.

In meiner ersten Datei, die für den Login per Input Felder zuständig ist, habe ich am Dateianfang folgendes drin:

session_start();
session_register( "nick", "passwort" );


Die nachfolgenden Seiten sind so Aufgebaut:

include("layout_top.php"); // enthält das Design links, und oben

dann die eigentliche Seite

include("layout_down.php"); // enthält das Design rechts und Leiste unten.


In der layout_top.php hab ich nun am Anfang folgendes drin:

session_start();

So wird dann bei jeder Seite die das layout_top includet die 2 Variablen ausgelesen. Funktioniert soweit auch, nur dass ich eine Fehlermeldung erhalte:

Warning: Cannot send session cache limiter - headers already sent (output started at d:\inetpub\wwwroot\swinger\layout_top.php:2) in d:\inetpub\wwwroot\swinger\layout_top.php on line 17

Die Line 17 enthält: session_start();

Kann mir da jemand weiterhelfen?? Und wie lange ist eine PHP Session eigentlich gültig?? Gibt es da einen Timeout??


Gruß

Andreas
 
Der Fehler bedeutet ganz einfach, dass vor dem session_start(); bereits irgendwas ausgegeben wurde. Das kann auch ein Leerzeichen ganz am Anfang vor <?php sein. Ansonsten *suchen*.
 
Hallo,

danke euch für die rasche Antwort.
Es lag an einem Leerzeichen vor dem <?php

Ok, aehm was ich aber jetzt festgestellt habe ist, dass da ja doch auch ein Cookie geschrieben wird. Dann bin ich ja auch nicht weiter.
Mein Wunsch ist ja dass ich auf die zwei Variablen $nick und $passwort Zugriff habe. In meinem Statistikprg kann ich aber nachsehen dass ca. 40 % der User keine Cookies zulassen, somit haben die keine Möglichkeit in das System zu gelangen. Gibt es da keine Lösung die ohne Cookies auskommt? Ansonsten müsste ich jedem Butten die zwei Variablen als Hidden, und jedem Textlink die zwei Variablen übergeben.


Gruß

Andreas
 
Ok, aehm was ich aber jetzt festgestellt habe ist, dass da ja doch auch ein Cookie geschrieben wird. Dann bin ich ja auch nicht weiter.

Also bei sessions gibt es zwei Möglichkeiten wie sie weitergegeben werden können:
Einmal über Cookies und als zweite Möglichkeit über URL-Parameter.

Ich würd normalerweise noch was dazu schreiben, aber ich muss jetzt schnell weg. Wenn du mehr wissen willst schreibs einfach, dann antowrte ich sobald ich Zeit hab.
 
Jo, Sessions werden, solange das der Surfer erlaubt, als Sessions gespeichert. Wenn der Surfer dies allerdings nicht erlaubt, werden sie auf dem Server gespeichert, und meit einer eindeutigen Zahlen-Buchstaben-Kombination identifiziert (session id). Diese wird dann per url (Get-Emthode) weitergegeben. Anhand dieser Id kann dann der Server alle Session zur Verfügung stellen.
 
Danke dir, hab eben mal mein schlaues PHP Buch bekniet, müsste dann also so gehen: <a href=listing.php?<?=SID?>">Nexte Seite</a>

Werde ich gleich mal testen, das bedeutet aber Arbeit :-( Jeden Link mit dieser =SID zu versehen. Bei Buttons?? muss ich die Variablen $nick und $passwort dann in einem Formular als hidden angeben, oder kann man da auch die =SID übergeben??


Gruß

Andreas
 
Du musst nur die session id übergeben soviel ich weiß.

Die einzige mir bekannte Möglichkeit dass du nicht jedesmal deine SessionID angeben musst ist wenn PHP mit der Option -enable-trans-sid kompiliert wurde. Hier wird die SessionID automatisch zum nächsten Script weitergegeben, aber die URL-Angaben müssen relativ sein. Wird die URL absolute angegeben, dann wird die SessionID nicht automatisch übertragen.
 
Hab mir das alles etwas einfacher vorgestellt.
Nugut, dann wird mir bestimmt nicht langweilig.
Buch lesen, Internet durchstöbern, irgentwie wirds
schon hinhauen.


Gruß

Andreas
 
Zurück