Sessions

Alles, was PHP betrifft, kann hier besprochen werden.

Sessions

Postby Knight1 » 12. August 2005 07:44

Hi Com,
ich habe mich an ein OnlineShop-System gewagt.
Dort nutze ich auch das erstemal in meinem Coder-Leben Sessions.
Das ganze Handeln der Session ist kein Problem.

Ich stelle mir nur die Frage ob es vielleicht möglich ist bei jedem Aufruf einer PHP-Datei, zum Beispiel die index.php, alle Sessions die vom Server gesetzt wurden gegebenenfalls zu Prüfen und zu löschen?
Ich möchte dass eine Sessiondatei nach einer gweissen Zeit ohne Zugriff darauf gelöscht wird damit im Laufe der Zeit keine Sessionleichen entstehen.
Oder gibt es eine andere Art dem Server beizubringen wann eine Session-Datei komplett gelöscht werden soll?
Bei Cookies ist dies ja kein Problem einen Gültigkeitswert anzugeben.

Hier mal der Code wie ich in der index.php mit den Sessions arbeite:

Code: Select all
<?
header ("Cache-Control: no-cache, must-revalidate");

include ("inc/general_vars.inc");
include ("inc/general_db_connect.inc");
include ("inc/general_functions.inc");

$config   = config();


if (!isset($_COOKIE['session']))
{
session_start();
setcookie ("session", session_id(), time() + 31536000);
}
else
{
session_id($_COOKIE['session']);
session_start();
}

if (!isset($_SESSION['session_identifier']) || empty($_SESSION['session_identifier']))
{
$_SESSION['session_identifier'] = "abc_webshop";
}

if (!isset($_SESSION['lang']) || empty($_SESSION['lang']))
{
$_SESSION['lang'] = "".$config['default_lang']."";
}

include ("lang/".$_SESSION['lang']."");

$_SESSION['last_visit_date']      = date("".$global['date']."",time());
$_SESSION['last_visit_time']      = date("".$global['time']."",time());
$_SESSION['last_visit_timestamp']   = time();
?>


Schon mal danke im vorraus für Anworten.

Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Wiedmann » 12. August 2005 10:07

Ich möchte dass eine Sessiondatei nach einer gweissen Zeit ohne Zugriff darauf gelöscht wird damit im Laufe der Zeit keine Sessionleichen entstehen.
Oder gibt es eine andere Art dem Server beizubringen wann eine Session-Datei komplett gelöscht werden soll?

http://de3.php.net/manual/en/ref.sessio ... axlifetime
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Knight1 » 12. August 2005 10:26

Wiedmann wrote:
Ich möchte dass eine Sessiondatei nach einer gweissen Zeit ohne Zugriff darauf gelöscht wird damit im Laufe der Zeit keine Sessionleichen entstehen.
Oder gibt es eine andere Art dem Server beizubringen wann eine Session-Datei komplett gelöscht werden soll?

http://de3.php.net/manual/en/ref.sessio ... axlifetime


Sorry, das hilft mir leider nicht weiter.

Gibt es keinen Weg, dies über ein PHP-Script zu lösen?


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby kleinweby » 12. August 2005 19:07

Hi

ich weis nicht ob dir das weiter hilft. Aber Session kann man mit
Code: Select all
session_destroy

beenden.
Einzelne Session Einträge konnen mit der Funktion
Code: Select all
unset();

gelöscht werden.
User avatar
kleinweby
AF Moderator
 
Posts: 393
Joined: 03. August 2005 19:52
Location: Magdeburg
Operating System: Mac OS X 10.7

Postby das_micha » 13. August 2005 01:36

mit den sessionleichen brauchste dir eigentlich keine sorgen machen! in der regel werden alle sessions die älter wie 20min sind automatisch gekillt!

ausser du hast cookies am start die dich permanent eingeloggt lassen!

oder irre ich mich da jetzt? denke aber nich! zumindest is es bei meinen servern auf 20 min eingestellt!

greetz Micha
das_micha
 
Posts: 1
Joined: 11. August 2005 16:41

Postby Knight1 » 13. August 2005 06:23

Kleinweby wrote:Hi

ich weis nicht ob dir das weiter hilft. Aber Session kann man mit
Code: Select all
session_destroy

beenden.
Einzelne Session Einträge konnen mit der Funktion
Code: Select all
unset();

gelöscht werden.


Die beiden Befehle welche Du angibst kenne ich schon. Den unset() nutze ich selbst einige male.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Knight1 » 13. August 2005 06:31

das_micha wrote:mit den sessionleichen brauchste dir eigentlich keine sorgen machen! in der regel werden alle sessions die älter wie 20min sind automatisch gekillt!

ausser du hast cookies am start die dich permanent eingeloggt lassen!

oder irre ich mich da jetzt? denke aber nich! zumindest is es bei meinen servern auf 20 min eingestellt!

greetz Micha


Das mit den 20min. ist mir unbekannt.

Mir geht es da drum dass wenn jemand ein halbes Jahr nicht mehr in dem Shop war oder überhaupt niemehr kommt, dass dann die Session-Datei unnötigen Speicherplatz wegnimmt. Ein Cookie kann ich ja über den expire-Parameter in dem Befehl setcookie() verfallen lassen.

Die Frage die ich mir stelle ist folgende:
Werden die Session-Dateien automatisch nach einer gewissen Zeit automtische von Server gelöscht oder muss ich sie manuell per Script löschen.
Die Sessions welche vom Online-Shop angelegt und genutzt werden/wurden sind dadurch eindeutig identifizierbar in dem ich ja den Parameter session_identifier setze.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby Eisbaer » 14. August 2005 00:54

in der php.ini regelt der eintrag "session.gc_maxlifetime" die lebensdauer einer session, besteht ein timeout, so wird die session datei nach einer zeitdauer (in sec) gelöscht
Eisbaer
 
Posts: 19
Joined: 08. August 2005 00:09


Return to PHP

Who is online

Users browsing this forum: No registered users and 10 guests