Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom eu tenho um sistema de login, o cadastro pega a senha joga no md5 e envia pro DB
depois no login eu leio a senha jogo pro md5 e verifico, mas ai não encontra o usuário
login:
<html>
<head>
<link href="estilo/logindx.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
require("config.php");
require("functions.php");
if(isset($_POST['usuario']) && isset($_POST['senha']) && getenv("REQUEST_METHOD") == "POST" && !isset($_SESSION["LOGADO"]))
{
$login = anti_injection($_POST['usuario']);
$senha = anti_injection($_POST['senha']);
if(!empty($login) && !empty($senha) && strlen($login) >= 6 && strlen($senha) >= 6 && verificarcaracteres($login, $senha))
{
$senha = md5($senha);
$sql = mysql_query("SELECT id, login FROM membro WHERE login='$login' AND senha='$senha'") or die(mysql_error());
$row = mysql_num_rows($sql);
$resultados = mysql_fetch_assoc($sql);
if($row == 0){
?>
<p class="erro">Usuário e/ou senha incorreto(s).</p>
<a class="erro" href='login.php'>Tentar novamente.</a>
<?php
} else {
session_start("online");
$_SESSION["LOGADO"] = 1;
$_SESSION["USUARIO"] = $resultados['login'];
$_SESSION["ID"] = $resultados['id'];
header("Location: principal.php");
}
} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não utilize "espaços".</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não utilize caracteres especiais.</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não deixe campos em branco.</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Login e Senha por padrão devem possuir no mínimo <strong style="color:#dcdcdc; font-size:1.5rem;">6</strong> caracteres.</strong></p>
<a class="erro" href='login.php'>Tentar novamente.</a>
<?php }
} else {
header("Location: login.php");
}
?>
</body>
</html>
cadastro:
<html>
<head>
<link href="estilo/logindx.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
require("config.php");
require("functions.php");
if(!isset($_SESSION["LOGADO"]) && getenv("REQUEST_METHOD") == "POST")
{
$usercadastro = anti_injection($_POST['usuariocadastrar']);
$usersenha = anti_injection($_POST['senhacadastrar']);
$usersenharepetir = anti_injection($_POST['repetirsenhacadastrar']);
if(!empty($usercadastro) && !empty($usersenha) && !empty($usersenharepetir))
{
if(strlen($usercadastro) >= 6 && strlen($usersenha) >= 6 && strlen($usersenharepetir) >= 6)
{
if(verificarcaracteresthree($usercadastro, $usersenha, $usersenharepetir))
{
if(strcmp($usersenha, $usersenharepetir) == false)
{//Cadastro
$sql = mysql_query("SELECT id, login FROM membro WHERE login = '$usercadastro'");
$row = mysql_num_rows($sql);
if($row == 1){ ?>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Usuário: <?php echo '<i>'.$usercadastro.'</i>'; ?> já existe.</p>
<a class="erro" href="cadastro.php">Tente novamente.</a>
<?php
} else {
$criptsenha = md5($usersenha);
$CmdSQL = "INSERT INTO membro (login, senha) VALUES ('$usercadastro', '$criptsenha');";
$Query = mysql_query($CmdSQL);
if($Query == 1){
$sucesso = true;
}
}
if($sucesso == 1) { ?>
<p class="erro"><strong style="color:#4ed000; font-size:2.0rem;">Usuário cadastrado com sucesso.</strong></p>
<p class="erro"><strong style="color:#4ed000; font-size:1.1rem;">Usuário: <?php echo '<i>'.$usercadastro.'</i>'; ?> Senha: <?php echo '<i>'.$usersenha.'</i>'; ?></p>
<a class="erro" style="a:hover{color:#4ed000}" href="login.php">Efetue login, clique aqui.</a>
<?php } else { ?>
<p class="erro">Ops!</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Ocorreu um problema ao cadastrar Usuário/Senha no banco de dados.</strong></p>
<a class="erro" href="cadastro.php">Tente novamente.</a>
<?php }
/*Cadastro*/} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Campo "Senha" e "Repetir Senha" não são iguais.</strong></p>
<a class="erro" href="cadastro.php">Tentar novamente.</a>
<?php
}
} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não utilize "espaços" e caracteres especiais.</strong></p>
<a class="erro" href="cadastro.php">Tentar novamente.</a>
<?php }
} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Os campos "Usuário" e/ou "Senha" deve ter no mínimo 6 caracteres.</strong></p>
<a class="erro" href="cadastro.php">Tentar novamente.</a>
<?php }
} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Por favor não deixe campos vazios.</strong></p>
<a class="erro" href="cadastro.php">Tentar novamente.</a>
<?php }
} else {
header("Location: cadastro.php");
exit();
}
?>
</body>
</html>WDuarte muito obrigado por se interessar em me ajudar, mas eu não entendi muito bem em dar um echo, e depois puxar a query?
<html>
<head>
<link href="estilo/logindx.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
require("config.php");
require("functions.php");
if(isset($_POST['usuario']) && isset($_POST['senha']) && getenv("REQUEST_METHOD") == "POST" && !isset($_SESSION["LOGADO"]))
{
$login = anti_injection($_POST['usuario']);
$senha = anti_injection($_POST['senha']);
if(!empty($login) && !empty($senha) && strlen($login) >= 6 && strlen($senha) >= 6 && verificarcaracteres($login, $senha))
{
//-------------------------
//Não alterar daqui pra cima -------------------
$senha = md5($senha);
$sql = "SELECT id, login FROM membro WHERE login='$login' AND senha='$senha'";
echo $sql;
/*
Rode o SQL no banco de dados, pode ser pelo phpMyAdmin veja se retorna algum resultado!
Isso é básico em um Debug de código.
Tenta apreender PDO muito mais fácil,
do que ficar usando funções obsoletas mysql_
*/
die();
//--------------
//Não alterar daqui pra baixo -------------------
$sql = mysql_query("SELECT id, login FROM membro WHERE login='$login' AND senha='$senha'") or die(mysql_error());
$row = mysql_num_rows($sql);
$resultados = mysql_fetch_assoc($sql);
if($row == 0){
?>
<p class="erro">Usuário e/ou senha incorreto(s).</p>
<a class="erro" href='login.php'>Tentar novamente.</a>
<?php
} else {
session_start("online");
$_SESSION["LOGADO"] = 1;
$_SESSION["USUARIO"] = $resultados['login'];
$_SESSION["ID"] = $resultados['id'];
header("Location: principal.php");
}
} else { ?>
<p class="erro">Preencha todos os campos corretamente.</p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não utilize "espaços".</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não utilize caracteres especiais.</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Não deixe campos em branco.</strong></p>
<p class="erro"><strong style="color:#F00000; font-size:1.5rem;">Login e Senha por padrão devem possuir no mínimo <strong style="color:#dcdcdc; font-size:1.5rem;">6</strong> caracteres.</strong></p>
<a class="erro" href='login.php'>Tentar novamente.</a>
<?php }
} else {
header("Location: login.php");
}
?>
</body>
</html>
Da um echo na SQL e executa a query diretamente em seu banco.
e vê se encontra alguma ou compare o hash com o que esta no banco,outra coisa utilizar md5 desta forma não é muito seguro, aconselho a criar um SALT com sha1 ou sha512,
Porque olhando seu código, não consegui ver erros.