Jump to content


Photo

Códido Para Login


  • Faça o login para participar
2 replies to this topic

#1 Alysson Oliveira

Alysson Oliveira

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Masculino

Posted 09/07/2008, 09:32

Srs.,

lendo posts de vários usuários, bem como o site W3 Schools criei o seguinte código PHP para login no meu site.
Como já disse em outro post, aprendi há pouco a linguagem e gostaria que alguém pudesse criticar a programação, nas questões praticidade, segurança e outras.
Grato desde já pela atenção.
Se o post ficou no fórum errado me perdoem.

Segue meu arquivo login.php

[codebox]<html>
<body>
<h3>Aguarde enquanto verificamos seus dados!</h3>
<?php
include("conecta.php");
include("con_fazenda.php");
$user=$_POST["user"];
$pass=$_POST["pass"];
$sql=mysql_query("SELECT usuario FROM tab_usuario WHERE usuario='$user'");
$row=mysql_num_rows($sql);

if ($row==0)
{
echo "Usuário não existe!";
echo "<meta HTTP-EQUIV='Refresh' CONTENT='2; url=index.html'>";
}
else
{
$sqlc=mysql_query("SELECT usuario,senha FROM tab_usuario WHERE usuario='$user' && senha='$pass'");
$rowc=mysql_num_rows($sqlc);
if ($sqlc==0)
{
echo "Usuário e/ou senha não cadastrado!";
echo "<meta http-equiv='refresh' content ='2; url=index.html'>";
}
else
{
$result=mysql_fetch_array($sqlc);
if ($result['usuario']==$user && $result['senha']==$pass)
{
echo "Bem vindo ao site de gerenciamento do Grupo Oliveiras";
echo "<meta http-equiv='refresh' content ='2; url=fazenda.php'>";
}
else
echo "Senha não confere!";
echo "<meta http-equiv='refresh' content ='2; url=index.html'>";
}
}

mysql_close($conecta);
?>
</body>
</html>[/codebox]

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 09/07/2008, 09:41

conselho? não sei se você já fez isso ou pretende fazer, mas sempre criptografe a senha, pode ser com md5 mesmo!
grave também sempre um backup da mesma para que você possa recuperá-la quando for, por exemplo, alterar a senha, ou enviar a senha perdida por e-mail! (y)

outra coisa, pra evitar injections sql, bote um addslashes para inserir barras ao fazer o login! Evita boa parte dos problemas já!

Edição feita por: maykel, 09/07/2008, 09:43.

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 09/07/2008, 09:47

No else, onde "A senha não confere", acredito que você esqueceu de abrir e fechar o bloco para as duas linhas que seguem, certo? (y)

Mas independente disto, acho que não precisa desta terceira condição, já que o seu teste de usuário e senha serem os mesmo dos digitados pelo usuário foram feitos na própria query. Se achou resultado quer dizer que os valores são iguais.

Fora isso, sugiro utilizar as funções strip_tags() e stripslashes() para variáveis vindas de formulário, para uma segurança a mais.

PS. a dica do maykel sobre obter o hash MD5 da senha é uma boa também.

(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq