php session denkproblem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktuelle session
array
aufruf
beispiel
benutzen
code
eintrag
ersten aufruf
falle
folgenden aufruf
funktion
gerade session
http
manual
nehmen
session
setzen
url
weiteren aufruf
zweck
-
hallo,
ich wollte gerade session in php benutzen, aber gern eine eigene session_id generieren...
php.net sagt dazu müsse man der funktion session_id() einfach nur eine id übergeben und zwar vor session_start().
ok, das klappt, aber jetzt will ich ja nicht bei jedem folgenden aufruf einer seite wieder eine neue sessionid generieren - aber auch nicht meine beim ersten aufruf generierte sessionid überschreiben...
also wie komme ich an die information ob eine sessionid übermittelt wurde bevor ich session_start() aufrufe damit ich im falle des ersten seitenaufrufs eine eigene generieren kann, aber in folgenden seitenaufrufen die übermittelte behalte ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mit der session_id() Funktion kannst du die momentane ID abfragen oder setzen. Du kannst also:
if ( session_id() == "" ) { // neue sessionID Generieren }
Wenn keine session_id vorhanden ist, das heißt es das erste mal ist, ist die SessionID leer.
Du kannst auch einen Eintrag in dem $_SESSION[] Array hinterlassen, nachdem du die Session gestartet hast prüfst du dann, ob der Eintrag vorhanden ist.
Liebe Grüße -
aber session_id() ist doch immer leer solange session_start() nicht aufgerufen wurde... und nach session_start() kann ich ja keine eigene id mehr vergeben...
-
session_start() generiert nur beim ersten Aufruf eine neue id, bei jedem weiteren Aufruf des selben Browsers bleibt die Sessin ID die gleiche. Heisst du kannst diese von Seite zu Seite mit nehmen. Ein session_start() muss aber immer zuerst erfolgen.
-
ähhm spinn ich ?
http://php.net/manual/de/function.session-id.php
...
Wenn id angegeben wird, wird die die aktuelle Session-ID ersetzt. session_id() muss zu diesem Zweck vor session_start() aufgerufen werden.
...
-
Weiter unten in deinem Link sind doch Beispiele wie du das umgehen kannst. Zum Beispiel dieser http://www.php.net/manual/de/function.session-id.php#99867
-
ok habs hinbekommen...
<?php session_start(); if(isset($_SESSION['aufruf'])) { $_SESSION['aufruf']++; }else { session_unset(); session_destroy(); $cSession = ''; $cZeichen = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; for($i=0;$i<=31;$i++) { $cZeichen = str_shuffle($cZeichen); $cSession .= substr($cZeichen,0,1); } $cSession = str_shuffle($cSession); session_id($cSession); session_start(); $_SESSION['aufruf'] = 1; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage