Ankündigung

Einklappen
Keine Ankündigung bisher.

session_set_save_handler()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • session_set_save_handler()

    Hi,
    ich probier gerade seit stunden ein skript zu finden mit dem ich
    meine sessions mit mysql verwalten kann ich hab zwar selbst auch probiert
    eins zu schreiben aber es funzt nicht und ich habe auch keine fehlermeldung mit der ich arbeiten könnte da mein apache abstürzt beim versuch eine session zu starten.

    Danke für die hilfe


    ps: der rückgabewert von session_set_save_handler() = True
    http://www.rentmyphone.com

  • #2
    Auszug aus meiner Session Klasse.

    Hinweis! Bei $MYSQL handelt es sich um eine MySQL Klasse von mir. Muß also an Deine Bedürfnisse angepaßt werden!

    Code:
    <?php
    
    class SESSION
    {
    	// -------------------------------------------
    	// -									-
    	// -		Sessions with MySQL				-
    	// -									-
    	// -------------------------------------------
    	/*
    	MySQL 3.23.x
    
    	CREATE TABLE `sessions` (
    	  `sesskey` varchar(32) NOT NULL default '',
    	  `sessvalue` text NOT NULL,
    	  `modify` timestamp NOT NULL default '0000-00-00 00:00:00',
    	  PRIMARY KEY  (`sesskey`)
    	) TYPE=MyISAM;
    	*/
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _OPEN($save_path, $session_name)
    	{
    		Return (true);
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _CLOSE()
    	{
    		Return (true);
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _READ($id)
    	{
    		$MYSQL = $GLOBALS["MYSQL"];
    
    		$MYSQL->QUERY("SELECT * FROM sessions WHERE sesskey='$id'");
    
    		if($MYSQL->NUM_ROWS>0)
    		{
    			Return (stripslashes(mysql_result($MYSQL->QUERY_RESOURCE,0,"sessvalue")));
    		} else {
    			Return ("");
    		}
    
    		Return ("");
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _WRITE($id, $sess_data)
    	{
    		$MYSQL = $GLOBALS["MYSQL"];
    
    		$MYSQL->QUERY("SELECT * FROM sessions WHERE sesskey='$id'");
    
    		if($MYSQL->NUM_ROWS>0)
    		{
    			$MYSQL->QUERY("UPDATE sessions SET sessvalue='".addslashes($sess_data)."', modify=NOW() WHERE sesskey='$id'");
    		} else {
    
    			$MYSQL->QUERY("INSERT INTO sessions (sesskey, sessvalue, modify) VALUES ('$id','".addslashes($sess_data)."',NOW())");
    		}
    
    		Return (true);
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _DESTROY($id)
    	{
    		$MYSQL = $GLOBALS["MYSQL"];
    
    		$MYSQL->QUERY("DELETE FROM sessions WHERE sesskey='$id'");
    
    		Return (true);
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    	Function _GC($maxlifetime)
    	{
    		$MYSQL = $GLOBALS["MYSQL"];
    
    		$MYSQL->QUERY("DELETE FROM sessions WHERE modify<FROM_UNIXTIME(UNIX_TIMESTAMP()-$maxlifetime)");
    
    		Return (true);
    	}
    /*--------------------------------------------------------------------------------------------------------------------*/
    }
    ?>

    Aktiviert wird das ganze per

    Code:
    <?php
    	$SESSCLASS = new SESSION;
    
       session_set_save_handler(
         array(&$SESSCLASS, '_OPEN'),
         array(&$SESSCLASS, '_CLOSE'),
         array(&$SESSCLASS, '_READ'),
         array(&$SESSCLASS, '_WRITE'),
         array(&$SESSCLASS, '_DESTROY'),
         array(&$SESSCLASS, '_GC')); 
    ?>
    http://www.donvelopment.org

    Kommentar


    • #3
      wie haste es denn probiert? kann man denn mal ein Script sehn? ein art Probe-Script so zusagen? o.O

      Kommentar

      Lädt...
      X