View file shcms/authorization.php

File size: 8.68Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Авторизация
=============================================
Official website: http://shcms.ru
=============================================
*/

define('SHCMS', true);
include_once'../system/inc/basic_settings.php';
$shcmsengine['title'] = Lang::get('Авторизация на сайте');
include_once'../template/head.php';

if(!$settings_shcms['act_aut']) {
errors(Lang::get("Авторизация временно отключено"));
include_once'../template/foot.php';
exit;
}


  if(isset($user_id)){
  header("Refresh:1; url=/index.php");
  exit();
  }

    if(isset($_POST['submit'])) {
           $submit = $_POST['submit'];
		   }

    if(isset($submit)) {
	
if($_POST['login']) {
$login_aut = trim($_POST['login']);
}
if($_POST['email']) {
$email_aut = trim($_POST['email']) ;}

if($_POST['id']) {
$id_aut = trim($_POST['id']);
}

if($_REQUEST['password']) {
$password_aut = $_REQUEST['password'];
}

$user_mem = isset($_POST['save_co']) ? 1 : 0;
$user_code = isset($_POST['code']) ? trim($_POST['code']) : NULL;

   if($settings_shcms['id_aut'] == 1) 
    {
        if (!$id_aut) 
		{
            errors(Lang::get('Введите ID'));
	        header("Refresh: 1; url=?");
	        include_once'../template/foot.php';
	        exit();
        }
    }
   elseif($settings_shcms['id_aut'] == 2) 
    {
        if (!$email_aut)
        {
            errors(Lang::get('Введите Email'));
	        header("Refresh: 1; url=?");
	        include_once'../template/foot.php';
	        exit();
        }
    }
    elseif($settings_shcms['id_aut'] == 0)
	{	   
        if (!$login_aut) 
		{
            errors(Lang::get('Введите логин'));
	        header("Refresh: 1; url=?");
	        include_once'../template/foot.php';
	        exit();
        }
	}
    if (($login_aut || $id) && !$password_aut) 
	{
        errors(Lang::get('Введите пороль'));
		header("Refresh: 1; url=?");
		include_once'../template/foot.php';
		exit();
    }
    if ($login_aut && (strlen($login_aut) < 2 || strlen($login_aut) > 20))
    {
        errors(Lang::get('Длина логина не должно превышать больше 20 символов'));
        header("Refresh: 1; url=?");
        include_once'../template/foot.php';
        exit();
    }
    if ($password_aut && (strlen($password_aut) < 3 || strlen($password_aut) > 15))
    {
        errors(Lang::get('Длина пороля не должно превышать больше 15 символов'));
        header("Refresh: 1; url=?");
        include_once'../template/foot.php';
        exit();
    }
/*
--------------------------------------
Капча. Разрещено отображать и скрывать
--------------------------------------
*/
    if($settings_shcms['captcha_aut'] == 1)
    {
        if(isset($_POST['kod']))
        {
            $antibot = isset($_POST['kod']) ? trim($_POST['kod']) : '';
    
	            if (empty($antibot) || strlen($antibot) < 3)
	            {
	                errors(Lang::get('Код безопастности не введен!'));
	                header('Refresh: 1; url=authorization.php?' . $conservation . '&' );
                    include_once'../template/foot.php';
	                exit(); 
				}
	            elseif ($antibot != $_SESSION['code'])
	            {
				    errors(Lang::get('Код безопасности не соответствует отображённому'));
	                header('Refresh: 1; url=authorization.php?' . $conservation . '&' );
                    include_once'../template/foot.php';
                    exit();
		        }	
            unset($_SESSION['code']);
	    }
	}

/*
---------------------
Авторизация по ID
---------------------
*/
    if($settings_shcms['id_aut'] == 1) 
	{
        $sql = $id ? "`id` = '$id'" : "`id`='" . rus_lat(strtolower($id_aut)) ."'";
    }
/*
---------------------
Авторизация по Email
---------------------
*/
    elseif($settings_shcms['id_aut'] == 2)
	{
        $sql = $id ? "`id` = '$id'" : "`email`='" . rus_lat(strtolower($email_aut)) ."'";
    }
/*
---------------------
Авторизация по Login
---------------------
*/
    elseif($settings_shcms['id_aut'] == 0) 
	{
        $sql = $id ? "`id` = '$id'" : "`login`='" . rus_lat(strtolower($login_aut)) ."'";
    }

    $shcms_aut = mysql_query("SELECT * FROM `users` WHERE $sql LIMIT 1");
	
    if (mysql_num_rows($shcms_aut)) 
	{
	    $user = mysql_fetch_array($shcms_aut);
         
		    if (md5(md5($password_aut)) == $user['password']) 
			{
                    if ($_POST['save_co'] == 1) {
                      $COOKIE_ID = base64_encode($user['id']);
                       $COOKIE_PASS = md5($password_aut);
                        setcookie("COOKIE_ID", $COOKIE_ID, time() + 3600 * 24 * 365);
                        setcookie("COOKIE_PASS", $COOKIE_PASS, time() + 3600 * 24 * 365);
                    }
                    $_SESSION['SESSION_ID'] = $user['id'];
                    $_SESSION['SESSION_PASS'] = md5(md5($password_aut));
					
					mysql_query("UPDATE `users` SET `browsers`='".browser()."',`sestime` = '".time()."', `datelast` = ".time().",`ip` = '$vi_shcms',`os` = '$get_OS' WHERE `id` = '".$user['id']."' LIMIT 1");
					mysql_query("INSERT INTO `logs_aut` (`user_id`,`port`,`ip`,`method`,`time`) VALUES ('$user[id]','$server_port','$vi_shcms','$method_logs','".time()."')");
				   
        if ($user['lastdate'] < (time() - 3600))
	    {
            messag(Lang::get('Вы успешно авторизованы'));
            header("Refresh: 1; url=/index.php");
            include_once'../template/foot.php';
            exit();
        }
	        }
			else 
			{
                errors(Lang::get('Ошибка авторизации'));
                header("Refresh: 1; url=?");
                include_once'../template/foot.php';
                exit();
			}
    }
	else
	{
        errors(Lang::get('Вы ввели неправильный логин и пороль'));
        header('Refresh: 1; url=authorization.php?' . $conservation . '&' );
        include_once'../template/foot.php';
        exit();
    }   

    } 
    else {
$log_aut = mysql_fetch_array(mysql_query("SELECT * FROM `logs_aut` WHERE `ip` = '".$vi_shcms."' ORDER BY `id` DESC"));
            echo '<form action="?'.$conservation.'" method="post">';
			echo '<div class="posts">'.Lang::get('Ваш IP:').' &nbsp;'.long2ip($vi_shcms).'<br/>';
        if($log_aut['time'] == 0) {
		    echo Lang::get('Вы еще не были авторизованы.');
		}else {
			 echo Lang::get('Ваш последний вход:').$timedate->times($log_aut['time']);
		}	 
		echo '</div>';
			 echo '<div class="posts">';
        if($settings_shcms['id_aut'] == 1)
		{
			echo Lang::get('ID:').'<br/><input type="text" name="id" value="'.$id_aut.'" maxlength="20"/><br/>';
		}
		elseif($settings_shcms['id_aut'] == 2)
		{
			echo Lang::get('Email:').'<br/><input type="text" name="email" value="'.$email_aut.'" maxlength="20"/><br/>';
		}
		elseif($settings_shcms['id_aut'] == 0)
		{
			echo Lang::get('Логин:').'<br/><input type="text" name="login" value="'.$login_aut.'" maxlength="20"/><br/>';
		}
			echo Lang::get('Пароль:').'<br/><input type="password" name="password" maxlength="20"/><br/>';
			echo '<input type="checkbox" name="save_co" value="1" checked="checked"/>'.Lang::get('Запомнить').'<br/>';
			
	    if($settings_shcms['captcha_aut'] == 1)
		{
			echo '<script type="text/javascript">
			      src="/shcms/antibot.php?r=rand(1000,9999)"; 
			      function reload(){
			      document.captcha.src="/shcms/antibot.php?r=rand(1000,9999)";
			      document.captcha.src=src+"?rand="+Math.random(); } </script>';
    	    echo '<img  name="captcha" class="midside" alt="'.Lang::get('Код безопастности').'" src="'.DIR_SHCMS.'antibot.php?r='.rand(1000, 9999) .'"/><br />';
		    echo '<a href="javascript:void(0)" onclick="reload()">'.Lang::get('обновить, если не виден код').'</a><br/>';
            echo '<input type="text" style="width:115px"  size="5" maxlength="5"  name="kod"/><br/>';
	    }
		    echo '<input type="submit" name="submit" value="'.Lang::get('Авторизация').'"/></form></div>' ;
		    echo '<div class="posts">'.Lang::get('Если вы забыли пороль:').' <a href="flogged.php">'.Lang::get('Восстановить пороль').'</a></div>';
		    echo '<div class="posts">'.Lang::get('Если у вас нет аккаунта:').' <a href="registration.php">'.Lang::get('Создать аккаунт').'</a></div>';

    }

	include_once'../template/foot.php';
?>