/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP session database
Fra : Ukendt


Dato : 18-10-10 22:04

?Hej Nyhedsgruppe,

Jeg har lavet en sessions-klasse som overskriver den eksisterende
php-sessions-funktion via session_set_save_handler. Det virker for det meste
fint, med udfald hver 10ende gang eller sådan noget hvor den ikke opdaterer
session data.

session.php inkluderes som den første lige efter config.php

(jeg har fjernet al urelevant kode)

register_shutdown_function('session_write_close');

   class session{
      function open($name){
         return true;
      }

      function close(){
         return true;
      }

      function read($id){
         .. læs fra database
      }

      function write($id,$data){
         $time = time();
         // check om sessionen er indsat i databasen
         $result = mysql_query("SELECT NULL FROM sessions WHERE id='$id'");
         if(mysql_num_rows($result)>0){
            return mysql_query("UPDATE sessions SET data='$data',time='$time' WHERE
id='$id'");
         }else{
            return mysql_query("INSERT INTO sessions (id,data,time) VALUES
('$id','$data','$time')");
         }
      }

      function destroy($id){
         slet fra databasen
      }

      function gc($maxlifetime){// ryd op
         $expires = time()+3600;

         mysql_query("DELETE FROM sessions WHERE `time`<=$expires");

         return true;
      }
   }

   $Session = new session();

   session_set_save_handler(
      array('Session', 'open'),
array('Session', 'close'),
array('Session', 'read'),
array('Session', 'write'),
array('Session', 'destroy'),
array('Session', 'gc')
);

   session_start();


Med venlig hilsen Anders


 
 
Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste