kostenloser Webspace werbefrei: lima-city


php session denkproblem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h**s

    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 ? :confused:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    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
  4. Autor dieses Themas

    h**s

    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... :wazzup:
  5. 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.
  6. Autor dieses Themas

    h**s

    ä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.
    ...
  7. 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
  8. Autor dieses Themas

    h**s

    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;
    	}
    ?>
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!