Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>";?>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.
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?