Вход Регистрация
Файл: sources/session.php
Строк: 48
<?php

if (!defined('VAPHP')) {
  die(
"Этот файл недоступен.");
}

class 
session {
  function 
session() 
  {
    global 
$CONF$DB;

    
// Удаляем сессии старше часа
    
$check_time time() - 3600;
    
$DB->query("DELETE FROM {$CONF['sql_prefix']}_sessions WHERE time < {$check_time}"__FILE____LINE__);
  }

  function 
create($type$data$cookie 1
  {
    global 
$CONF$DB;

    
$sid $this->make_sid(32);
    
$time time();

    
$DB->query("INSERT INTO {$CONF['sql_prefix']}_sessions (type, sid, time, data) VALUES ('{$type}', '{$sid}', {$time}, '{$data}')"__FILE____LINE__);

    if (
$cookie
    {
      
setcookie("vaphp_sid_{$type}"$sid);
    }

    return 
$sid;
  }

  function 
delete($sid$name 0) {
    global 
$CONF$DB;

    if (
$this->check_sid($sid)) {
      list(
$type$data) = $this->get($sid);
      if (!
$name) {
        
$name "vaphp_sid_{$type}";
      }

      
setcookie($name0time() - 3600);
      
$DB->query("DELETE FROM {$CONF['sql_prefix']}_sessions WHERE sid = '{$sid}'"__FILE____LINE__);

      return 
1;
    }
    else {
      return 
0;
    }
  }

  function 
get($sid
  {
    global 
$CONF$DB;

    if (
$this->check_sid($sid)) 
    {
      
$session $DB->fetch("SELECT type, data FROM {$CONF['sql_prefix']}_sessions WHERE sid = '{$sid}'"__FILE____LINE__);
      return 
$session;
    }
    else {
      return 
0;
    }
  }

  function 
update($sid
  {
    global 
$CONF$DB;

    if (
$this->check_sid($sid)) 
    {
      
$time time();
      
$DB->query("UPDATE {$CONF['sql_prefix']}_sessions SET time = {$time} WHERE sid = '{$sid}'"__FILE____LINE__);
      return 
1;
    }
    else {
      return 
0;
    }
  }

  function 
check_sid($sid
  {
    if (
preg_match('/^[a-zA-Z0-9]+$/'$sid)) 
    {
      return 
1;
    }
    else {
      return 
0;
    }
  }

  function 
make_sid($length
  {
    
$sid '';
    for (
$i 1$i <= $length$i++) 
    {
      
$random mt_rand(130);
      if (
$random <= 10
      {
        
$sid .= chr(mt_rand(6590));
      }
      elseif (
$random <= 20
      {
        
$sid .= mt_rand(09);
      }
      else 
      {
        
$sid .= chr(mt_rand(97122));
      }
    }

    return 
$sid;
  }
}
?>
Онлайн: 1
Реклама