Jump to content
Fórum Script Brasil
  • 0

Solicitar senha ou captcha para excluir um registro


Liviasam
 Share

Question

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 to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...