Вход Регистрация
Файл: 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($name, 0, time() - 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(1, 30);
      if (
$random <= 10) 
      {
        
$sid .= chr(mt_rand(65, 90));
      }
      elseif (
$random <= 20) 
      {
        
$sid .= mt_rand(0, 9);
      }
      else 
      {
        
$sid .= chr(mt_rand(97, 122));
      }
    }

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