Ir para conteúdo

POWERED BY:

Arquivado

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

Pauloooo

Sistema de Login e Senha (POSTGRESQL)

Recommended Posts

opa galera fiz um sistema de login e senha, se vocês puderem verificar se ele esta bem feito, seguro, alguma sugestão ou qualquer coisa da tipo ficarei gratoabraçosegue codigosarea restrita.php

<div id="formulario"><script>function apaga(){	document.getElementById('senha').value = document.getElementById('senha2').value	document.getElementById('senha2').value = '';	}</script><form name="form" action="security/login.php" method="post" target="_blank" onsubmit="apaga()"><fieldset>		<label>Login</label> <input name="login" type="text" id="login"><br>	<label>Senha</label> <input name="senha" type="hidden" id="senha">						 <input name="senha2" type="password" id="senha2"><br>	<input type="submit" name="enviar" value="Enviar"><br></fieldset></form></div>

security/login.php

<?//inclui a conexãoinclude "conecta.php";//inicia a sessão@session_start();//atribui o valor de usuario e senha para a sessão se tudo estiver correto.	$_SESSION["login"] = $login;	$_SESSION["senha"] = $senha;	//direciona para a pagina inicial caso login e senha OK.	@header("Location: index.php");	?>

security/conecta.php

<?//captura o usuario e senha que foi digitado no formulario$login = $_POST["login"];$senha = $_POST["senha"];	//variaveis que podem ser trocadas de acordo com o banco de dados	$host = "host = localhost"; 		//servidor	$port = "port = 5432";      		//porta	$dbname = "dbname = intranet"; 		//banco de dados	$user = "user = $login";			//usuario	$password = "password = $senha";	//senha		// string de conexão com o banco de dados	$conn = @pg_connect("$host						 $port						 $dbname						 $user						 $password"); if(!$conn){	echo "<div align = \"center\">Não foi possivel conectar ao banco de dados.<br>";	echo "<input type=\"Button\" onclick=\"window.close('#');\" value=\"Voltar\"></div>"; 	exit;}?>

security/index.php

<?//inclui a conexãoinclude "conexao.php";//inicia a sessão@session_start();//verifica se o usuario esta logadoif(!isset($_SESSION["login"]) || !isset($_SESSION["senha"])){    // Usuário não logado! Redireciona para a página de login	    @header("Location: login.php");		exit;}$p = $_GET["p"];if (!$p) $p="principal";?><html><head>	<title>Area Restrita</title>	<link rel="stylesheet" href="style/estilo.css" type="text/css">	<link rel="stylesheet" href="style/estrutura.css" type="text/css"></head><body><div id="geral">	<div id="header">		<img src="logo.jpg" alt="Intranet DAESP" width="714" height="75" border="0">		<div id="navbar">			bem vindo <?= $_SESSION["login"] ?> | <a href= "sair.php">sair do sistema</a>		</div>	</div><br>	<div id="middle">		<div id="left">			<? include "menu_left.php" ?>			<br>		</div>		<div id="main">							<? if (file_exists("$p.php"))					 include("$p.php"); 					 else 					 include("404.php"); ?>			<br>			<br>			<br>			</div>		</div>			<div id="footer">		Intranet DAESP - Todos os Direitos Reservados © Tecnologia da Informação	</div></div></body></html>

security/conexao.php

<?//captura o usuario e senha que foi digitado no formulario$login = $_POST["login"];$senha = $_POST["senha"];	//variaveis que podem ser trocadas de acordo com o banco de dados	$host = "host = localhost"; 		//servidor	$port = "port = 5432";      		//porta	$dbname = "dbname = intranet"; 		//banco de dados	$user = "user = $login";			//usuario	$password = "password = $senha";	//senha		// string de conexão com o banco de dados	$conn = @pg_connect("$host						 $port						 $dbname						 $user						 $password"); ?>

security/sair.php

<?php// Inicia sessões, para assim poder destruí-lassession_start();session_destroy();//Redireciona para a pagina de login//header("Location: login.php");echo "<a href = \"index.php\">voltars</a>";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola kra vou fazer isto ainda

 

não deu certo aqui não oque eu fasso ?

 

ja estou tentando fazer isso a um tempão mas não consigo se você conseguir disponibilizar isto dai pronto para download agradeço

 

e como colocar isso no meu blog?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um geito bom de fazer um sistema de login, e criando uma classe para isso.

 

No banco:

CREATE TABLE login (
codlogin SERIAL NOT NULL,
codusuario INT4 NOT NULL,
login VARCHAR(20) NOT NULL,
crypsenha VARCHAR(50) NOT NULL,
bloqueado BOOLEAN DEFAULT FALSE
UNIQUE(login),
PRIMARY KEY(codlogin)
);

Quando for inserir um novo usuario faça o insert da seguinte forma:

 

INSERT INTO login VALUES (default 'codigo_do_usuario', 'login_do_usuario', MD5('senha_do_usuario'), default);

A função MD5 do postgres vai criptografar a senha de forma que nem você mesmo irá saber.

Quando for fazer um SELECT para verificar o usuario, traga todos os dados e faça o SELECT da seguinte forma:

SELECT * FROM login WHERE login = 'login_do_usuario' AND crypsenha = MD5('senha_do_usuario') LIMIT 1;

Na sua aplicação, de um fetch_xxx e verifique se o campo bloqueado está ou nao como TRUE, se tiver ja sabe..

 

Quando ao PHP:

 

Crie uma classe para fazer essa autenticação com havia dito, mais antes crie uma classe apenas para fazer a conexao ao banco e executar as querys:

 

Banco.class.php

 


<?php
class Banco {

    private $cnn, $qry, $sql, $db;
    private $host = "localhost";
    private $user = "usuario_banco";
    private $pass = "senha_usuario_banco";
    private $banco = "nome_banco";
    private $porta = "5432";

    public function setHost($ip){
        $this->host = $ip;
    }

    public function setUser($usr){
        $this->user = $usr;
    }

    public function setPass($pwd){
        $this->pass = $pwd;
    }

    public function setBanco($db){
        $this->banco = $db;
    }

    private function Conectar(){

        $DADOS = (object) array(
                            "host" => $this->host,
			    "port" => $this->porta,
                            "user" => $this->user,
                            "pass" => $this->pass,
                            "banco" => $this->banco
                          );
	$str_conn = "host=".$DADOS->host." port=".$DADOS->port." dbname=".$DADOS->banco." user=".$DADOS->user." password=".$DADOS->pass;
        $this->cnn = pg_connect($str_conn) or die ("Erro ao tentar selecionar servidor da base de dados: " . pg_error());
    }

    public function Executar($sql){
        $this->sql = (string) $sql;

        self::Conectar();
        $this->qry = pg_query($this->cnn, $this->sql) or die ("Erro ao executar query na base de dados: " . pg_error());

        if(pg_affected_rows($this->qry) > 0){
		return $this->qry;
	}else{
		return 0;	
	}
	
    self::Desconectar();
    }

    private function Desconectar(){
        return pg_close($this->cnn);
    }
}
?>

Autenticacao.class.php

 


<?php
class Autenticacao extends Banco {
	protected $_login, $_senha;

	public function __constructor($login, $senha){
		$this->_login = addslashes($login);
		$this->_senha = addslashes($senha);
		self::validaUser();
	}

	protected function validaUser(){
		$sql = "select para autenticacao";
		$rtn = parent::Executar($sql);

		if($rtn == '0'){
			//nenhum usuario foi encontrado
		}else{
			//Usuario encontrado
			//Você pode dar um fetch alguma coisa aqui para ver se ele está ou nao bloqueado;
			//E daqui mesmo da classe jogar os dados para dentro de uma sessao com o nome dele
			//e retornar true caso esteja tudo bem e redirecionar para a pagina de acesso.
		return true;
		}		
	}
}

Espero ter ajudado.

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.