Ir para conteúdo
  • 0

Pergunta

Olá pessoal estou tentando fazer um recuperador de senha por e-mail

mais quando coloca o email para solicitar da ERRO

 

Talvez eu tenha deixado passar alguma coisa aí que não estou vendo o que seja

 

PHP


if(isset($_POST['email'])){
  function geraToken($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos = false){
    $lmin = 'abcdefghijklmnopqrstuvwxyz';
    $lmai = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $num = '1234567890';
    $simb = '!@#$%*-';
    $retorno = '';
    $caracteres = '';
    $caracteres .= $lmin;
    if ($maiusculas) $caracteres .= $lmai;
    if ($numeros) $caracteres .= $num;
    if ($simbolos) $caracteres .= $simb;
    $len = strlen($caracteres);
    for ($n = 1; $n <= $tamanho; $n++) {
    $rand = mt_rand(1, $len);
    $retorno .= $caracteres[$rand-1];
    }
    return $retorno;
  }

    $email = post('email');

    $QueryNum = DBCount('usuarios','email',"WHERE email = '{$email}'");
    if ($QueryNum >= 1) {
    $Query = DBRead('usuarios','email',"WHERE email = '{$email}'"); if (is_array($Query)) { foreach ($Query as $usuario) {
        $email_cliente = $usuario['email'];
    } }
  
    $token = geraToken(10, true, true, false);
    $Atualiza = array('token' => $token, );
    $Query = DBUpdate('usuarios',$Atualiza,"email = '{$email}'");

  $assunto = "Senha - Painel Administrativo";

  $mensagem  = 'Você solicitou a alteração da sua senha do painel '.ConfigPainel('site_nome').'. Clique no link abaixo para realizar a troca da sua senha.<br>';
  $mensagem .= '<a href="'.ConfigPainel('base_url')."/resetar-senha.php?cod=".$token.'" target="_blank">Redefinir Senha</a><br>';
  $mensagem .= 'ou copie e cole o link abaixo no seu navegador:<br> '.ConfigPainel('base_url')."/resetar-senha.php?cod=".$token.'';
  $mensagem .= '<br>Atenção: Caso não tenha solicitado a redefinição da senha, ignore essa mensagem.';

  require_once("controller/class.phpmailer/class.phpmailer.php");
  $mail = new PHPMailer;
  $mail->IsMail(true);
  $mail->IsHTML(true);
  $mail->CharSet = 'UTF-8';
  $mail->From = ConfigPainel('email');
  $mail->FromName = ConfigPainel('site_nome');
  $mail->AddAddress($email);
  $mail->Subject = ConfigPainel('site_nome')." | "."Senha - Painel Administrativo";
  $mail->Body = $mensagem;
  $mail->AltBody = strip_tags($mensagem);
  if($mail->Send()){
    AbreAlerta('Geramos um Token para a troca da senha. Confira seu email');
  } else {
    AbreAlerta('Erro');
  }
  
  } else {
    AbreAlerta('Esse email não existe no banco de dados.');
  }
}
?>

Este é o form html

 

      <form id="Form" role="form" method="post" class="form" enctype="multipart/form-data" action="">
        <div class="modal-body">
          <p>
            <?php echo $txt['msg_resetar_senha']; ?>
          </p>
          <h5><?php echo $txt['seu_email']; ?></h5>
          <input type="email" name="email" class="form-control">
        </div>
        <div class="modal-footer">
          <button type="submit" class="btn btn-primary" name="reset_senha"><?php echo $txt['enviar']; ?></button>
        </div>
      </form>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por carlos.roberto
      Boa tarde,
       
      Estou com um código de recuperação de senha que, com o usuário preenchendo o formulário, precisa ser encaminhado ao e-mail dele a nova senha. Porém isso não ocorre. Me falaram que o erro é em mail(), fiz algumas alterações, mas ainda assim não vai.
       
      Não posso publicar o código todo, mas vou postar a parte de envio:
      $destinatario="<$sEmail>"; $assunto="Mensagem de Recuperação de Senha"; $formato="From:Área Cliente<$Remetente>\n"; $formato.="X-Sender:<$Remetente>\n"; $formato.="X-mailer: PHP\n"; $formato.="X-Priority: 1\n"; $formato.="Return-Path: <$Remetente>\n"; $formato.="Content-Type: text/html; charset=iso-8859-1\n"; $sendmail = mail($destinatario, $assunto, $mensagem, $formato); if ($sendmail) { echo "<script>alert('Email de Recuperação de Senha Enviado Com Sucesso!')</script>"; } else { echo "<script>alert('Erro no Envio do Email de Recuperação de Senha!')</script>"; } Se precisarem de alguma coisa, só falar. Aparentemente o erro não é no banco, mas vou ver isso logo mais.
       
      Att
×

Informação importante

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