Ir para conteúdo
Fórum Script Brasil
  • 0

Solicitar senha ou captcha para excluir um registro


Liviasam

Pergunta

Boa tarde. Me ajudem. Tenho um cadastro de clientes, dei uma melhorada com um js, assim fazendo uma pergunta antes de excluir um registro, mas mesmo assim ainda por engano a pessoa pode dar o ok. Fica um pouco sem segurança.

Se alguém tiver uma alternativa que fosse mais segura. Seria melhor que antes ele solicitasse a senha do usuário para confirmar a exclusão, um CAPTCHA também poderia ser.

No momento ele tem um js assim.

<script language="JavaScript">
function pergunta()
{
if (confirm('Você tem certeza que deseja realmente excluir este cliente?')) { return true }
else { return false }
}
</script>



E na chamada assim:

<td width="5%" align="center"><a href="?Excluir=ok&id=<?=$coluna[id_cliente]?>" onClick="return pergunta();"><img src="imagens/excluir.png" alt="Excluir" border="0"></a></td>


Está bem simples e funciona, porém com pouca segurança para um descuido.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde, Livia.

Você poderia tentar fazer esta requisição via PHP, ao clicar abrir uma pagina para confirmação da senha (podendo ser em um modal) e se a senha for compativel com o banco de dados ele exclui os dados, pois você teria que trabalhar com AJAX para fazer esta verificação então provavelmente seria melhor em php, eu uso assim :)

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Seria basicamente assim... so você adaptar e fazer alterações...

<?php
	if(isset($_POST['submit'])){
		echo "<div style='width: 400px; height: 400px; z-index: 9999;'>";
		echo "<form method='post'>";
		echo "<input type='text' name='confirmasenha'>";
		echo "<input type='submit' name='submitconfirm' value='Excluir'>";
		echo "</form>";
		echo "</div>";
	}
	if(isset($_POST['submitconfirm'])){
		$sql_compara_senha = 
		$query_compara_senha = $PDO->prepare($sql_compara_senha);
		$query_compara_senha->execute();
		if($sql_compara_senha === $_POST['confirmasenha'){
		$sql_delete =
		$query = $PDO->prepare($sql_delete);
		$query->execute();
		}
	}
?>
<form method="post">
<input type="text" name="dadodb" disabled value="dados">
<input type="submit" name="submit" value="deletar">
</form>

 

Espero que ajude :)

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar alguma alternativa em captcha. Seu exemplo está em PDO e fica complicado eu ter de ficar modificando para eu me adaptar aqui a ele. Por isso postei meu código, para ver se alguém podia me dar uma ajuda no que tenho nele. Seu código é um modelo copiado, e nisso acho vários no google, não ajuda muito.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, será que ao menos se pode com o js após a pergunta, caso a pessoa der ok para exclusão ele abrir uma segunda janela confirmando isso mesmo?

Baseado no que já tenho. Ele não deletaria na primeira pergunta, e sim chamaria uma segunda para confirmação.

<script language="JavaScript">
function pergunta()
{
if (confirm('Você tem certeza que deseja realmente excluir este cliente?')) { return true }
else { return false }
}
</script>



<td width="5%" align="center"><a href="?Excluir=ok&id=<?=$coluna[id_cliente]?>" onClick="return pergunta();"><img src="imagens/excluir.png" alt="Excluir" border="0"></a></td>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!

porque ao invés de excluir definitivamente, você não muda o status do seu cliente, apenas desativando/enviando pra uma lixeira,

caso haja alguma exclusão equivocada, em algum outro momento você pode recuperá-lo da lixeira!

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, wash disse:

Olá!

porque ao invés de excluir definitivamente, você não muda o status do seu cliente, apenas desativando/enviando pra uma lixeira,

caso haja alguma exclusão equivocada, em algum outro momento você pode recuperá-lo da lixeira!

Acredito que esta seja a melhor forma (ativando/desativando).

Muito raramente eu deleto algo do banco de dados... sempre trabalho com uma coluna "ativo" (boolean), que indica se o registro foi excluído ou não, e filtro nas consultas do sistema para não exibi-lo. Fazendo desta forma,
1 - consigo sempre manter um histórico das informações;
2 - não tem problema de excluir informação errada (caso aconteça, ativo o registro e o sistema continua funcionando como antes);
3 - não tem problema de excluir informação que possui dependência em outra tabela (chave estrangeira);

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...