Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pinoc

[Resolvido] Verifica senha

Recommended Posts

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

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

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

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

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

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

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

@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

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.

 

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

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

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

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

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
$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

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

Pronto, o problema está na variavel $user. Corrija ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.