<?php
##################################################
##												##
## Author:       Andrey Brykin (Drunya)         ##
## Version:      0.9                            ##
## Project:      CMS                            ##
## package       CMS Fapos                      ##
## subpackege    Autologin function             ##
## copyright     ©Andrey Brykin 2010-2011       ##
##################################################


##################################################
##												##
## any partial or not partial extension         ##
## CMS Fapos,without the consent of the         ##
## author, is illegal                           ##
##################################################
## Любое распространение                        ##
## CMS Fapos или ее частей,                     ##
## без согласия автора, является не законным    ##
##################################################


// Функция осуществляет автоматический вход на форум
function autoLogin() {
	global $FpsDB;
  // Если не установлены cookie, содержащие логин и пароль
  if ( !isset( $_COOKIE['id'] ) or !isset( $_COOKIE['password'] ) ) {
	$path ='/';
	if ( isset( $_COOKIE['id'] ) ) setcookie( 'id', '', time() - 1, $path );
	if ( isset( $_COOKIE['password'] ) ) setcookie( 'password', '', time() - 1, $path );
	if ( isset( $_COOKIE['autologin'] ) ) setcookie( 'autologin', '', time() - 1, $path );
    return false;
  }
  // Проверяем переменные cookie на недопустимые символы
  $name = preg_replace( "#[^- _0-9a-zА-Яа-я]#i", '', $_COOKIE['id'] );
  // Т.к. пароль зашифрован с помощью md5, то он представляет собой
  // 32-значное шестнадцатеричное число
  $password = substr( $_COOKIE['password'], 0, 32 );
  $password = preg_replace( "#[^0-9a-f]#i", '', $password );

  
  // Выполняем запрос на получение данных пользователя из БД
  $query = "SELECT *, UNIX_TIMESTAMP(last_visit) as unix_last_visit
            FROM `" . $FpsDB->getFullTableName('users') . "`
            WHERE `id`='".mysql_real_escape_string( $name )."'
			AND `passw`='".mysql_real_escape_string( $password )."'
			LIMIT 1";
  $res = $FpsDB->query( $query );
  
  
  // Если пользователь с таким логином и паролем не найден -
  // значит данные неверные и надо их удалить
  if ( count( $res ) < 1 ) {
    //$tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1;
	//$path = substr( $_SERVER['PHP_SELF'], 0, $tmppos );
	$path = '/';
	setcookie( 'autologin', '', time() - 1, $path );
        setcookie( 'id', '', time() - 1, $path );
	setcookie( 'password', '', time() - 1, $path );
    return false;
  }

  
  $user = $res[0];
  if ( !empty( $user['activation'] ) ) {
    //$tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1;
	//$path = substr( $_SERVER['PHP_SELF'], 0, $tmppos );
	$path = '/';
	setcookie( 'autologin', '', time() - 1, $path );
	setcookie( 'id', '', time() - 1, $path );
	setcookie( 'password', '', time() - 1, $path );
    return showInfoMessage( 'Ваша учетная запись не активирована', '/' );
  }

  // Если пользователь заблокирован
  if ( $user['locked'] ) {
    //$tmppos = strrpos( $_SERVER['PHP_SELF'], '/' ) + 1;
	//$path = substr( $_SERVER['PHP_SELF'], 0, $tmppos );
	$path = '/';
	setcookie( 'autologin', '', time() - 1, $path );
	setcookie( 'id', '', time() - 1, $path );
	setcookie( 'password', '', time() - 1, $path );
    redirect('/users/baned/');
  }

  $_SESSION['user'] = $user;

  // Функция getNewThemes() помещает в массив $_SESSION['newThemes'] ID тем,
  // в которых были новые сообщения со времени последнего посещения пользователя
  getNewThemes();

  return true;
}


?>