Fehlermeldung bei Sessions
Markus
- php
0 Mike©
Dieses habe ich in ein Skript einer Seite eingegeben:
<?php
error_reporting(E_ALL);
session_start();
echo session_id();
echo "<br>";
echo session_name();
Beim öffnen der Seite erscheint diese Fehlermeldung:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /eingeloggt.php:4) in /eingeloggt.php on line 17
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /eingeloggt.php:4) in /eingeloggt.php on line 17
aad6bd808b8bdcf7f1d74656d8f81874
PHPSESSID
Wo ist der Fehler?
Mein Ziel ist es, dass sich jemand einloggt. Wenn es funktioniert startet eine Session. Sessions haben nur eine begrenzte Lebensdauer. Wenn der User die Domain verlässt, bleibt im Verlauf des Browsers die Seite noch erwähnt. Eine andere Person kann also die Passwortgeschützte Seite wieder betreten. Das soll mit Sessions verhindert werden.
Moin Markus,
Beim öffnen der Seite erscheint diese Fehlermeldung:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /eingeloggt.php:4) in /eingeloggt.php on line 17
Schaue mal hier nach:
https://forum.selfhtml.org/?t=127830&m=825355
regds
Mike©
Gut, das mit der fehlermeldung habe ich gelöst.
Aber stimmt meine Vermutung auch, dass ich somit einen Zugang auf diesen Passwortgeschützten Bereich verhindere, damit keine fremde Person die Daten des Users verwenden kann?
Auf die Seite käme er nur über die Seitenangaben im verlauf des Browsers.
Moin!
Gut, das mit der fehlermeldung habe ich gelöst.
Aber stimmt meine Vermutung auch, dass ich somit einen Zugang auf diesen Passwortgeschützten Bereich verhindere, damit keine fremde Person die Daten des Users verwenden kann?
Auf die Seite käme er nur über die Seitenangaben im verlauf des Browsers.
Es gibt zwei Methoden, einen HTTP-Bereich auf dem Server nur einem begrenzten Personenkreis zugänglich zu machen:
1. Username und Passwort wird bei jedem Seitenabruf übermittelt.
2. Username und Passwort wird in eine Session gesteckt.
Methode 1 ist die HTTP-Authentifizierung (auch weltbekannt unter dem sachlich falschen Namen ".htaccess") - nur speichert sich hier der Browser Username und Passwort auch solange, bis er komplett geschlossen wurde.
Methode 2 funktioniert nach der Übermittlung von Username und Passwort zeitlich so lange, wie die Programmierung des Bereichs es erlaubt (was man aber auch bei Methode 1 einbauen könnte, wenn man wollte). Grundsätzlich verfallen Sessions irgendwann - aber den genauen Zeitpunkt kann man ohne Zusatzprogrammierung nicht eingrenzen. Es ist daher nicht empfehlenswert, über das Vorhandensein einer Session oder des Session-Cookies irgendeine Schlußfolgerung über die Gültigkeit des Logins zu ziehen - man muß schon explizit die Zeit des letzten Zugriffs selbst speichern und bei jedem Zugriff separat prüfen, ob dieser Zeitpunkt schon zu lange zurückliegt. Ist das nicht der Fall, ist der Zugriff zu gestatten.
Je kürzer der erlaubte Zeitraum, desto unwahrscheinlicher ist es, dass jemand den Browser mit vergessenem Login "wiederbelebt". Und man kann sich als regulärer Benutzer natürlich auch explizit ausloggen und damit diesen Versuch grundsätzlich verhindern.
- Sven Rautenberg