Amigos, estou criando um sistema de login, e nele tenho uma página "esqueci a senha". Tudo funciona, exceto uma coisa. Quando o usuário altera a senha, eu preciso que os dados do link único que foram gerados pelo php e armazenados no banco de dados sejam apagados tabela "recuperação". E o meu comando "delete" não funciona. A linha não apaga. E não consigo entender o porque.
O comando que uso para deletar é:
if($statement->execute()){
$query_apaga ="DELETE * FROM recuperacao WHERE email_usu = '$user'";
$result_apaga = $conn->prepare($query_apaga);
$result_apaga->execute();
echo "<p style='color: green;'>Senha alterada com sucesso!</p>";
echo "<p style='color: green;'><a href='login.php'><font size='2'>Voltar ao Login</font></a></center></p>";}else{
echo "<p style='color: red;'>Erro! Não foi possível alterar sua senha. Por favor, entre em contato com o administrador do sistema.</p>";}
Meu código completo:
<?php
include_once 'connect.php';?><!DOCTYPE html><htmllang="pt-br"><head><metacharset="UTF-8"><metaname="viewport"content-"width=device-width, initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Recuperação de Senha</title><style>
body{font-family: Arial, Helvetica, sans-serif}.content{display:flex;justify-content: center}.contato{width:100%;max-width:500px;}.form{display: flex;flex-direction: column}.field{padding:10px;margin-bottom:15px;border:1px solid #DDD;border-radius:5px;font-family: Arial, Helvetica, sans-serif;font-size:16px}.field2{padding:10px;margin-bottom:15px;border:1px solid #ADD8E6;background-color:#ADD8E6;border-radius:5px;font-family: Arial, Helvetica, sans-serif;font-size:16px}.field2:hover{padding:10px;margin-bottom:15px;border:1px solid #87CEFA;background-color:#87CEFA;border-radius:5px;font-family: Arial, Helvetica, sans-serif;font-size:16px;font-weight:bold;}</style><script>function confereSenha(){const senha = document.querySelector('input[name=senha]');const confirma_senha = document.querySelector('input[name=confirma_senha');if(confirma_senha.value === senha.value){
confirma_senha.setCustomValidity('');}else{
confirma_senha.setCustomValidity('As senhas digitadas não conferem! Elas precisam ser iguais.');}}</script></head><body><sectionclass="content"><divclass="contato"><center><h2>Recuperação de Senha</h2></center><br><br><?php
$user = $_GET['utilizador'];
$hash = $_GET['confirmacao'];
$modified = date('Y-m-d H:i:s');
$query_recupera ="SELECT * FROM recuperacao";
$result_recupera = $conn->prepare($query_recupera);
$result_recupera->execute();
$row_recupera = $result_recupera->fetch(PDO::FETCH_ASSOC);
$user_cadastrado = $row_recupera['email_usu'];
$hash_cadastrado = $row_recupera['confirmacao'];
$query_usuario ="SELECT * FROM usuario WHERE email = '$user'";
$result_usuario = $conn->prepare($query_usuario);
$result_usuario->execute();
$row_usuario = $result_usuario->fetch(PDO::FETCH_ASSOC);
$id_user = $row_usuario['id'];if(!empty($_POST)){if($user == $user_cadastrado && $hash == $hash_cadastrado){
$dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$sql ="UPDATE usuario SET senha =:senha, modified =:modified WHERE id =:id";
$statement = $conn->prepare($sql);
$statement->bindParam(':senha', password_hash($dados['senha'], PASSWORD_DEFAULT));
$statement->bindParam(':modified', $modified);
$statement->bindParam(':id', $id_user);if($statement->execute()){
$query_apaga ="DELETE * FROM recuperacao WHERE email_usu = '$user'";
$result_apaga = $conn->prepare($query_apaga);
$result_apaga->execute();
echo "<p style='color: green;'>Senha alterada com sucesso!</p>";
echo "<p style='color: green;'><a href='login.php'><font size='2'>Voltar ao Login</font></a></center></p>";}else{
echo "<p style='color: red;'>Erro! Não foi possível alterar sua senha. Por favor, entre em contato com o administrador do sistema.</p>";}}else{
echo "<p style='color: red;'>Erro! Os dados fornecidos não conferem. Tente novamente ou entre em contato com o administrador do sistema.</p>";}}else{
echo "";}?><formname="cad_usu"class="form"method="POST"action=""><inputclass="field"type="password"name="senha"placeholder="Senha"requiredonchange='confereSenha();'><inputclass="field"type="password"name="confirma_senha"placeholder="Confirmar Senha"requiredonchange='confereSenha();'><inputclass="field2"type="submit"name="AlteraSenha"value="Alterar Senha"><inputclass="field2"type="reset"value="Limpar Formulário"></form></div></section></div></body></html>
Pergunta
Edilson Santiago
Amigos, estou criando um sistema de login, e nele tenho uma página "esqueci a senha". Tudo funciona, exceto uma coisa. Quando o usuário altera a senha, eu preciso que os dados do link único que foram gerados pelo php e armazenados no banco de dados sejam apagados tabela "recuperação". E o meu comando "delete" não funciona. A linha não apaga. E não consigo entender o porque.
O comando que uso para deletar é:
Meu código completo:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.