Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alessandro Patricia

Sistema Login - Criando sessão.

Recommended Posts

Boa tarde pessoal

 

Aproveitei um script que nosso colega Fabyo postou a um bom tempo atras ( Script)http://forum.imasters.com.br/topic/261114-resolvidosistema-de-login-seguro/, de um sistema de login seguro que trabalha através de sessão.

 

Porem ao incluir o script de segurança no top de meu index, não está funcionando. Se eu acesso o index diretamente pela barra de endereço, a pagina é carregada ao invés de pedir o login para acessa-la.

 

Desde já agradeço a quem puder ajudar.

<?php
 session_start();
 if(!isset($_COOKIE["dados"]) and !isset($_SESSION["dados"])){
 	header("Location: login.html");
 	header("Content-Length: 0");
	exit();
 }
 ?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>XXXXXX</title>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria está que vc se refere?

<?php
if (basename($_SERVER["PHP_SELF"]) == "init.php") {
	die("Este arquivo não pode ser acessado diretamente.");
}	

if(get_magic_quotes_runtime()){
	set_magic_quotes_runtime(0);
}

function remove_mq(&$var) {
	return is_array($var) ? array_map("remove_mq", $var) : stripslashes($var);
}

if (get_magic_quotes_gpc()) {
	$_GET    = array_map("remove_mq", $_GET);
	$_POST   = array_map("remove_mq", $_POST);
	$_COOKIE = array_map("remove_mq", $_COOKIE);
}

if (function_exists("ini_get")) {
	if(!ini_get("display_errors")){
		ini_set("display_errors", 1);
	}	
	
	if(ini_get("magic_quotes_sybase")){
		ini_set("magic_quotes_sybase", 0);
	}	
	
	if (ini_get("register_globals")) {	
		foreach($GLOBALS as $s_variable_name => $m_variable_value) {
			if (!in_array($s_variable_name, array("GLOBALS", "argv", "argc", "_FILES", "_COOKIE", "_POST", "_GET", "_SERVER", "_ENV", "_SESSION", "s_variable_name", "m_variable_value"))){
				unset($GLOBALS[$s_variable_name]);
			}
		}
		unset($GLOBALS["s_variable_name"]);
		unset($GLOBALS["m_variable_value"]);
	}  
}

error_reporting(E_ALL);

define("ROOT", $_SERVER["DOCUMENT_ROOT"]);
define("BASEPATH", getcwd()."/");

set_include_path('.' . PATH_SEPARATOR . BASEPATH . 'includes'
	. PATH_SEPARATOR . BASEPATH . 'classes'
	. PATH_SEPARATOR . get_include_path());

function __autoload($classe){
	require_once $classe.".php";	
}

if (file_exists(BASEPATH . "config.php")){
	require_once BASEPATH . "config.php";
} else {
	die("Erro: Arquivo config.php nao localizado");
}	

clearstatcache();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou a este outro arquivo.

<?php
if(file_exists("init.php")){
	require_once "init.php";
} else {
	die("Arquivo de init não encontrado");
}

require_once "seguranca.php";

$dados = isset($_SESSION["dados"]) ? $_SESSION["dados"] : unserialize($_COOKIE["dados"]);
echo "Seja Bem-Vindo ". $dados["nome"]." ";
?>
<a href="sair.php">Sair</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria está que vc se refere?

<?php
if (basename($_SERVER["PHP_SELF"]) == "init.php") {
	die("Este arquivo não pode ser acessado diretamente.");
}	

if(get_magic_quotes_runtime()){
	set_magic_quotes_runtime(0);
}

function remove_mq(&$var) {
	return is_array($var) ? array_map("remove_mq", $var) : stripslashes($var);
}

if (get_magic_quotes_gpc()) {
	$_GET    = array_map("remove_mq", $_GET);
	$_POST   = array_map("remove_mq", $_POST);
	$_COOKIE = array_map("remove_mq", $_COOKIE);
}

if (function_exists("ini_get")) {
	if(!ini_get("display_errors")){
		ini_set("display_errors", 1);
	}	
	
	if(ini_get("magic_quotes_sybase")){
		ini_set("magic_quotes_sybase", 0);
	}	
	
	if (ini_get("register_globals")) {	
		foreach($GLOBALS as $s_variable_name => $m_variable_value) {
			if (!in_array($s_variable_name, array("GLOBALS", "argv", "argc", "_FILES", "_COOKIE", "_POST", "_GET", "_SERVER", "_ENV", "_SESSION", "s_variable_name", "m_variable_value"))){
				unset($GLOBALS[$s_variable_name]);
			}
		}
		unset($GLOBALS["s_variable_name"]);
		unset($GLOBALS["m_variable_value"]);
	}  
}

error_reporting(E_ALL);

define("ROOT", $_SERVER["DOCUMENT_ROOT"]);
define("BASEPATH", getcwd()."/");

set_include_path('.' . PATH_SEPARATOR . BASEPATH . 'includes'
	. PATH_SEPARATOR . BASEPATH . 'classes'
	. PATH_SEPARATOR . get_include_path());

function __autoload($classe){
	require_once $classe.".php";	
}

if (file_exists(BASEPATH . "config.php")){
	require_once BASEPATH . "config.php";
} else {
	die("Erro: Arquivo config.php nao localizado");
}	

clearstatcache();
?>

Vitor, o sistema volta para a tela de login??

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso o sistema que eu criei, não utiliza cookies, só SESSIONS, na verdade eu acho que o erro aqui é na hora de ver se a uma SESSAO aberta.

Vou revisar meu código, e tentar uma base no teu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta isso

 

<?php
if(file_exists("init.php")){
require_once "init.php";
} else {
die("Arquivo de init não encontrado");
}

require_once "seguranca.php";

$dados =!isset($_SESSION["dados"]) ? $_SESSION["dados"] : unserialize($_COOKIE["dados"]);
echo "Seja Bem-Vindo ". $dados["nome"]." ";
?>
<a href="sair.php">Sair</a>

 

coloca exclamação no isset ficando assim !isset

 

isset significa desconhecido no caso o exclamação fica assim se não for desconhecido a session entra na pagina


seu arquivo que cria a session está neste segurança.php? posta ele ai caso a dica em cima não dê certo


o seu codigo tá assim:

se desconhecido a session

seja bem vindo você tem que colocar a exclamação acho que resolve seu problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

o script está correto.

Provavelmente o problema é que vc já tenha na máquina o cookie, assim as instruções não são executadas.

 

Limpe todos os cookies e tente entrar na página ou verifique somente se a sessão existe, pois na minha opinião, o uso desse cookie é desnecessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, usei o script acima que o colega OMOR passou sem efeito, fiz o teste em outro navegador de outra maquina e limpei os temporarios sem efeito.

 

abaixo o meu script que cria a sessão.

<?php
session_start();            
if(file_exists("init.php")){
    require_once "init.php";
} else {
    die("Arquivo de init não encontrado");
}

function limpa($string){
    $var = trim($string);
    $var = addslashes($var);    
    return $var;
}

if(getenv("REQUEST_METHOD") == "POST"){
    $nome = isset($_POST["nome"]) ? limpa($_POST["nome"]) : "";
    $senha = isset($_POST["senha"]) ? limpa($_POST["senha"]) : "";
    
    $sql = sprintf("select count(*) from usuarios where login = '%s' and senha = md5('%s')", $nome, $senha);
    mysql_connect(SERVIDOR, USUARIO, SENHA) or die(mysql_error());
    mysql_select_db(BANCO) or die(mysql_error());
    
    $re = mysql_query($sql) or die(mysql_error());
    if(mysql_result($re, 0)){
        $re      = mysql_query("select * from usuarios where login = '$nome' and senha = md5('$senha')") or die(mysql_error());        
        $resultado = mysql_fetch_array($re);

        if($resultado["nivel_acesso"] > 0){
            $dados = array();
            $dados["nome"] = $nome;
            $dados["senha"] = $senha;            
            $_SESSION["dados"] = $dados;            
            
            if(isset($_POST["cookie"])){            
                setcookie("dados", serialize($dados), time()+60*60*24*365);            
            }
            
            header("Location: restrito.html");
        } else {

            header("Location: index.html");
        }        
    } else {

        header("Location: index.html");
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu script não está executando mesmo, não sei o porque


mysql_connect(SERVIDOR, USUARIO, SENHA) or die(mysql_error());
mysql_select_db(BANCO) or die(mysql_error());

 

seu servidor é localhost, seu usuario é root sua senha?

você está colocando tudo certo?

seu banco como se chama?


coloca esses dados num arquivo separado e faça apenas o include

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha baixei os arquivos desse fabio aqui mas também não consegui fazer funcionar


vc entende de php ou só copia codigos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sou da area de programação. Estou criando site para uma necessidade pessoal.

Estou copiando e editando.

Este deixei quase funcional o q matou foi esta questao q preciso q alguns index so abram mediante usuário logado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.