beowlf 0 Denunciar post Postado Novembro 29, 2011 Bom dia.. Galera da iMasters to com um problema no login do meu site ele autentica a o login e se eu deixo a senha em branco ele entra no sistema se eu digito a senha correta ele da senha incorreta... oq pode ser... alguem pode me ajudar vou postar o codigo... <? $login = $_POST['login']; $senha = $_POST['senha']; include "config.php"; $sql = mysql_query("SELECT * FROM users WHERE user = '$login'"); $cont = mysql_num_rows($sql); while($linha = mysql_fetch_array($sql)){ $senha_db = $linha['senha']; } if($cont == 0){ echo " <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'> <script type=\"text/javascript\"> alert(\"O nome de usuario não corresponde.\"); </script>"; }else{ if($senha_db != $senha){//confere senha echo " <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'> <script type=\"text/javascript\"> alert(\"A senha não <> corresponde.\"); </script>"; }else{ session_start(); $_SESSION['login_usuario'] = $login; $_SESSION['senha_usuario'] = $senha; header('Location: admin.php'); } } mysql_close($db); ?> Obrigado!!! fico feliz por vcs estarem sempre me ajudando.... é uma honra fazer parte dessa comunidade... Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 verifica o usuário e a senha diretemante na query $sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND `senha` = '{$senha}'") or die(mysql_error()); depois é só verificar se retornou alguma linha, caso contrário o usuário ou senha estão incorretos Compartilhar este post Link para o post Compartilhar em outros sites
beowlf 0 Denunciar post Postado Novembro 29, 2011 olha a mensagem que dá... Unknown column 'senha' in 'where clause' eu arrumei no meu banco estava como pass o campo deu certo mas quando agora digita uma senha incorreta ele vai para o logar.php ele nao volta pro index.php nao entendi o pq Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 posta como ficou seu código Compartilhar este post Link para o post Compartilhar em outros sites
beowlf 0 Denunciar post Postado Novembro 29, 2011 <? $login = $_POST['login']; $senha = $_POST['senha']; include "config.php"; $sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND 'senha' = '{$senha}'") or die(mysql_error()); $cont = mysql_num_rows($sql)or die(mysql_error()); while($linha = mysql_fetch_array($sql)){ $senha_db = $linha['senha']; } if($cont == 0){ echo " <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'> <script type=\"text/javascript\"> alert(\"O nome de usuario não corresponde.\"); </script>"; }else{ if($senha_db != $senha){//confere senha echo " <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'> <script type=\"text/javascript\"> alert(\"A senha não <> corresponde.\"); </script>"; }else{ session_start(); $_SESSION['login_usuario'] = $login; $_SESSION['senha_usuario'] = $senha; header('Location: admin.php'); } } mysql_close($db); ?> o unico lugar que ele pega esse logar.php é aqui <form action="logar.php" method="post" enctype="multipart"> <fieldset> <label> <span>login:</span> <input type="text" name="login" /> </label> <label> <span>Senha:</span> <input type="password" name="senha" /> </label> <label> <input style="border:0 !important; background:none; font:bold 12px Arial !important; color:#FFF !important; cursor:pointer !important; float:right !important; margin:0 21px 0 0 !important; padding:0 !important;" type="submit" value="acessar" name="submit" /> </label> </fieldset> </form> vo postar aqui o meu banco de dados do login e senha Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 vamos corrigir e simplificar esse código erros detectados nunca use <? sempre use a tag completa para iniciar o php <?php nomes de campos e tabelas sempre com crase `` e não com aspas simples ' ' errado ...'senha'.. certo ...`senha`.. fora alguns excessos de código desnecessários e no quesito segurança falta uma verificação de sql injection e criptografia de senha, pesquise sobre isso de uma forma simples, tae <?php $login = $_POST['login']; $senha = $_POST['senha']; include "config.php"; $sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND `senha` = '{$senha}'") or die(mysql_error()); if(mysql_num_rows($sql) == 0){//se não achar echo " <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'> <script type=\"text/javascript\"> alert(\"O nome de usuario ou senha não correspondem.\"); </script>"; }else{//se achar session_start(); $_SESSION['login_usuario'] = $login; $_SESSION['senha_usuario'] = $senha; header('Location: admin.php'); } mysql_close($db); ?> Compartilhar este post Link para o post Compartilhar em outros sites
beowlf 0 Denunciar post Postado Novembro 29, 2011 cara fico show... fico top fico lindo obrigado pelas dicas... obrigado de verdade me ajudo muito as dicas fantasticas eu to vendo a parte que você disse de sql injection e criptografia de senha eu dei uma olhada em um site olha como ta o exemplo dele dessa criptografia de senha <?php session_start(); $login = $_POST["login"]; $senha = $_POST["senha"]; $login_escape = addslashes($login); $senha_escape = addslashes($senha); $sql = "SELECT * FROM admin WHERE login='{$login_escape}' AND senha = '{$senha_escape}' "; . . . ?> vou ver se consigo melhorar isso, mas banco de dados tenho muitas duvidas é complicado... mas muito obrigado de verdade... valeu Compartilhar este post Link para o post Compartilhar em outros sites
neto_celino 0 Denunciar post Postado Novembro 29, 2011 eu prefiro usar o do proóprio dreaweaver, nunca tive problemas com ele, e axo super seguro. ele adiciona automático, voce só configura a tabela e as paginas. Compartilhar este post Link para o post Compartilhar em outros sites