Desenvolvi para minha empresa um sistema de login para meu sistema. Bati bastante para conseguir fazer e aqui está o resultado. Espero que gostem e comentem!!!
*/Index.php para login/*
<html>
<head>
<title>LOGIN</title>
</head>
<body>
<h2>::LOGIN::</h2>
<p>
<form action="vlog.php" method="post" name="formulario" id="formulario">
<p>login:<input type="text" name="login" id="login"> <br> </p>
<p>senha:<input type="password" name="senha" id="senha"> <br> </p>
<p><input type="submit" name="botao" id="botao" value="logar"> </p>
</form>
</p>
</body>
</html>
*/vlpog.php verificador de usuario e senha!/*
<?php
$usuario = $_POST["login"];
$senha = $_POST["senha"];
*/Abre a conexão com o mysql/*
$con = mysql_connect("SEU_SERVIDOR","SEU_USUARIO","SUA_SENHA");
mysql_select_db("SEU_BANCO_DE_DADOS");
*/Aqui veificamos se o usuario e senha digitados no formulário existem e estão corretos/*
$sql = mysql_query("SELECT * FROM SUA_TABELA_DE_DADOS WHERE log_nome='$usuario' and senha='$senha'");
$qregistro = mysql_num_rows($sql);
if($qregistro<1){
echo "Login ou senha errado(s)!!";
}
else
{
*/Apos verificado ele grava o usuario e senha no vetor $_session[]/*
session_start();
$_SESSION['nome_usuario']=$usuario;
$_SESSION['senha_usuario']=$senha;
header("Location: home.php");
}
mysql_close($con)
?>
*/home.php - essa é a janela principal do "site" nela e em todas as outrazs que vocês queria bloquear vocês devem colocar a include a seguir!/*
<?php
include "valida_USUARIO.ink";
?>
<html>
<head>
<title>:LOGADO!!!:</title>
</head>
<body>
PARABÉNS!!!! VOCÊ ESTA LOGADO!!!
</body>
</html>
*/verifica_usuario.ink essa include ela verifica se o ususario esta logado o sistema verificando a session existente!/*
<?php
*/Esse sesion_start() inicia a sessão dando acesso ao vetor $_session[]/*
session_start();
*/coletamos os dados existentes no vetor.../*
if(IsSet($_SESSION['nome_usuario']))
$nome_usuario=$_SESSION['nome_usuario'];
if(IsSet($_SESSION['senha_usuario']))
$senha_usuario=$_SESSION['senha_usuario'];
*/aqui vamos verificar se temos algo registrado/*
if(!(empty($nome_usuario) OR empty($senha_usuario)))
{
*/Abre a conexão com o mysql e seleaciona o banco/*
$con = mysql_connect("SEU_SERVIDOR","SEU_USUARIO","SUA_SENHA");
mysql_select_db("SEU_BANCO_DE_DADOS");
$sql=mysql_query("SELECT * FROM usuarios WHERE log_nome='$nome_usuario'");
$conta=mysql_num_rows($sql);
if($conta>=1)
{
if($senha_usuario != mysql_result($sql,0,"senha"))
{
unset($_SESSION['nome_usuario']);
unset($_SESSION['senha_usuario']);
echo "você não efetuou o login!";
exit;
}
}
else
{
unset($_SESSION['nome_usuario']);
unset($_SESSION['senha_usuario']);
echo "você não efetuou o login!";
exit;
}
}
else
{
echo "você não efetuou o Login!";
exit;
}
mysql_close($con);
?>
[3] Comentário enviado por hugoeustaquio em 25/09/2008 - 14:38h
Sim, o nome da função é esse mesmo. Desculpe, mas é que eu escrevi o código direto na caixinha de texto aqui do vol e confundi o nome da função.
Desculpem-me.
A propósito, vocês tem que utilizar essa função sempre que forem concatenar algum dado enviado pelo usuário em uma query. Isso é imprecindível, caso contrário o usuário coloca no campo nome algo tipo "admin' #". Com isso a query fica da seguinte forma:
select * from tabela where log_nome = 'admin' #' and senha = '****'
E a tralha pode (dependendo da configuração do mysql) significar comentário. Então o banco somente executa o comando "select * from tabela where log_nome = 'admin'". Outra coisa que também é interessante é nunca usar "select * ". Nem que você precise digitar o nome de todos os campos da tabela (não tenha preguiça, certamente encontrará um lugar pra dar ctrl+c e ctrl+v), pois conforme a aplicação for crescendo e as tabelas do banco de dados forem ganhando novos campos, cada query da sua aplicação se tornará mais lenta, sem necessidade. Então selecione somente os campos que você vai usar, héim!
[4] Comentário enviado por form1ga em 25/09/2008 - 17:41h
Opa, geralmente mando correção com algo a dizer, mas como não tenho nada agora.. só trocar S por Z em utiliZando, no título do artigo.
No mais, parabéns,
Valeu, Julio.
[7] Comentário enviado por murilosantos em 31/03/2015 - 23:53h
Galera seguinte, não sei como desviar esse código sem "esbarrar" no PDO, gostei da preocupação com a segurança de vocês, e queria usar algumas linhas, mas como fazer isso com PDO???
Desde já agradeço, Murilo.
[8] Comentário enviado por hugoeustaquio em 01/04/2015 - 00:06h
Murilo, não sei se vou poder ajudar muito porque já não trabalho com php faz muitos anos. Mas esse script não foi escrito usando PDO, e para aproveitá-lo você vai ter de substituir todas as funções "mysql_***" pela equivalente em PDO.
Usando a função "bindParam" para passar os parâmetros nas queries conforme foi mostrado nesse link, você não terá problemas de SQLInject. Talvez o autor do script ainda o esteja usando e possa te ajudar mais. Esse post é de quase sete anos atrás, rs.
//Abre a conexão com o mysql
$con = mysql_connect("127.0.0.1","root","teste");
mysql_select_db("dashboard");
//Aqui veificamos se o usuario e senha digitados no formulário existem e estão corretos
//$sql = mysql_query("SELECT * FROM acesso WHERE log_nome='$usuario' and senha='$senha'");
$sql = "SELECT * FROM acesso WHERE log_nome='$usuario' and senha='$senha'"; // Consulta ao banco de dados
$query = mysql_query($sql) or die (mysql_error());
$qregistro = mysql_num_rows($sql);
if($qregistro <1){
echo "Login ou senha errado(s)!!";
}
else
{
//Apos verificado ele grava o usuario e senha no vetor $_session[]
session_start();
$_SESSION['nome_usuario']=$usuario;
$_SESSION['senha_usuario']=$senha;
header("Location: home.php");
}
//coletamos os dados existentes no vetor...
if(IsSet($_SESSION['nome_usuario']))
$nome_usuario=$_SESSION['nome_usuario'];
if(IsSet($_SESSION['senha_usuario']))
$senha_usuario=$_SESSION['senha_usuario'];
//aqui vamos verificar se temos algo registrado
if(!(empty($nome_usuario) OR empty($senha_usuario)))
{
//Abre a conexão com o mysql e seleaciona o banco
$con = mysql_connect("127.0.0.1","root","teste");
mysql_select_db("dasboard");
//$sql=mysql_query("SELECT * FROM acesso WHERE log_nome='$nome_usuario'");
$sql = "SELECT * FROM acesso WHERE log_nome='$usuario' and senha='$senha'";// Consulta ao banco de dados
$query = mysql_query($sql) or die (mysql_error());
$conta = mysql_num_rows($sql);
if($conta >= 1)
{
if($senha_usuario != mysql_result($sql,0,"senha"))
{
unset($_SESSION['nome_usuario']);
unset($_SESSION['senha_usuario']);
echo "você não efetuou o login!";
exit;
}
}
else
{
unset($_SESSION['nome_usuario']);
unset($_SESSION['senha_usuario']);
echo "você não efetuou o login!";
exit;
}
}
else
{
echo "você não efetuou o Login!";
exit;
}