pinoc 2 Denunciar post Postado Outubro 7, 2012 Pessoal, estou fazendo um sistema de exclusão de usuario, tipo quando o usuario do sistema clicar para excluir o usuario em expecifio aparece um campo para digitar a senha do usuario a ser excluido, so que não to conseguinte fazer ele verificar se a senha é daquele usuario mesmo. O meu codigo abaixo parece que não verifica a senha e pula direto pro ELSE, alguma coisa to fazendo errado isso eu sei mais não consegui achar oque. Alguem pode me ajudar? <?php session_start(); session_name("admin"); require("inc/verifica_sessao.php"); include "inc/conecta_bd.php"; $id = $_POST['id']; $senha = $_POST['senha']; $rs = mysql_query("SELECT * FROM usuarios WHERE de_senha='$senha'") or die(mysql_error()); $dados = mysql_fetch_array($rs); if($_POST['acao'] && $_POST['acao'] == "delete"){ if($dados['de_senha'] == md5($senha))//verifica se a senha está correta { $rs1 = mysql_query("DELETE FROM usuarios WHERE cd_usuario='$id'"); echo"<script language=javascript>alert('Usuário excluido com sucesso.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; }else{ echo"<script language=javascript>alert('Senha digitada não corresponde com o usuário.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 7, 2012 No SELECT você tem que por a senha do usuário logado e não a do $_POST['senha']. Ao fazer login, salve todos os dados do usuário em uma session. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 7, 2012 No SELECT você tem que por a senha do usuário logado e não a do $_POST['senha']. Ao fazer login, salve todos os dados do usuário em uma session. Gabriel Jacinto. Não entendi. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 7, 2012 Tipo, na hora de fazer o login, você faz um mysql_fetch_array (ou object) e cria um session chamada, tipo info, no qual conterá as informações do usuário logado, tipo assim, no login $_SESSION['info'] = mysql_fetch_array($sql); Então, quando quiser verificar a senha do usuário, como nessa sua página ai, é só fazer isso aqui: if($_POST['senha'] == $_SESSION['info']['senha']){ //Se a senha for igual }else{ //Se não } Não precisa nem daquele SELECT ali. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 7, 2012 Tipo, na hora de fazer o login, você faz um mysql_fetch_array (ou object) e cria um session chamada, tipo info, no qual conterá as informações do usuário logado, tipo assim, no login $_SESSION['info'] = mysql_fetch_array($sql); Então, quando quiser verificar a senha do usuário, como nessa sua página ai, é só fazer isso aqui: if($_POST['senha'] == $_SESSION['info']['senha']){ //Se a senha for igual }else{ //Se não } Não precisa nem daquele SELECT ali. Ahn, obrigado pela dica nem sabia isso hehe. Mais intão oque to querendo fazer não é bem isso, to querendo que verifique a senha do usuario que ira ser cadastrado. Por exemplo: Login: joão Senha: 123 vo excluir o joão, a senha que eu digitar ali no campo que pede tem que ser 123 para ele excluir o joão. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 7, 2012 A ta, entendi. O problema está no seu SELECT, reepare que você não codificou em md5 para a verificação. O certo é assim: $rs = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."'") or die(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 7, 2012 Ficaria assim então? if($_POST['acao'] && $_POST['acao'] == "delete"){ $id = $_POST['id']; $senha = $_POST['senha']; $del = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."'") or die(mysql_error()); $dados = mysql_fetch_array($del); if($dados['de_senha'] == $senha)//verifica se a senha está correta { $rs1 = mysql_query("DELETE FROM usuarios WHERE cd_usuario='$id'"); echo"<script language=javascript>alert('Usuário excluido com sucesso.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; }else{ echo"<script language=javascript>alert('Senha digitada não corresponde com o usuário.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; } } Se for assim não esta funcionando, e ainda por sima ele excluir o usuario se eu digitar a senha do usuario com ID 1 Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 7, 2012 No if também como md5: if($dados['de_senha'] == md5($senha)) Mas o certo não seria fazer a consulta pelo id do usuário em vez da senha? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 8, 2012 @pinoc, nesse select você tem q verificar também se esta senha pertence a este usuario. Algo como: "SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND usuario = 'Joao'" se não, qualquer senha será capaz de apagar qq um... o "truque" é o AND ali. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 William Bruno Fiz da seguinte forma, como você disse mas ele fica dando erro mesmo que a senha seja igual e não exclui. $del = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND de_login='$user'") or die(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 8, 2012 Você fez a troca no if? if($dados['de_senha'] == md5($senha)) Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 Gabriel. Fiz sim, veja o codigo completo. if($_POST['acao'] && $_POST['acao'] == "delete"){ $id = $_POST['id']; $senha = $_POST['senha']; $user = $_POST['user']; $del = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND de_login='$user'") or die(mysql_error()); $dados = mysql_fetch_array($del); if($dados['de_senha'] == md5('$senha'))//verifica se a senha está correta { $rs1 = mysql_query("DELETE FROM usuarios WHERE cd_usuario='$id'"); echo"<script language=javascript>alert('Usuário excluido com sucesso.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; }else{ echo"<script language=javascript>alert('Senha digitada não corresponde com o usuário.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; } } Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 8, 2012 Amigo, você não precisa do IF com a senha. o SELECT vai fazer esse "if" pra você. Apenas veja se retornou 1 ou nenhuma linha do banco. Um simples num_rows() Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 Como assim William? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Outubro 8, 2012 Ele quis dizer, que só assim serviria: if($_POST['acao'] && $_POST['acao'] == "delete"){ $id = $_POST['id']; $senha = $_POST['senha']; $user = $_POST['user']; $del = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND de_login='$user'") or die(mysql_error()); $rs1 = mysql_query("DELETE FROM usuarios WHERE cd_usuario='$id'"); echo"<script language=javascript>alert('Usuário excluido com sucesso.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; } Mas Willian, ele precisa verificar a senha para excluir, então acho que não daria. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 Gabriel. Acho que o William quiz dizer algo a mais ali que não entendi. Mais se for como você disse no exemplo Gabriel realmente não funciona. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 Pelo que entendi e pesquisei o William falo para colocar num_rows() So que nunca melhi com nun_rows hehe. Acho que seria assim no caso. Mais tirei a parte do if ali e pecebi que nun_rows so retorna 0 acertando a senha ou errando ela. $del = mysql_query("SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND de_login='$user'") or die(mysql_error()); $dados = mysql_num_rows($del); if($dados > '0') { $rs1 = mysql_query("DELETE FROM usuarios WHERE cd_usuario='$id'"); echo"<script language=javascript>alert('Usuário excluido com sucesso.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; }else{ echo"<script language=javascript>alert('Senha digitada não corresponde com o usuário.')</script>"; echo"<script language=javascript>location.href='usuarios.php'</script>"; exit; } Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 8, 2012 $sql = "SELECT * FROM usuarios WHERE de_senha='".md5($senha)."' AND de_login='$user'"; echo $sql; $del = mysql_query( $sql ); execute dessa forma. Diga oque retornar. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Outubro 8, 2012 William Retorno isso para min SELECT * FROM usuarios WHERE de_senha='e10adc3949ba59abbe56e057f20f883e' AND de_login=' $user ' Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 8, 2012 Pronto, o problema está na variavel $user. Corrija ela. Compartilhar este post Link para o post Compartilhar em outros sites