Ir para conteúdo

POWERED BY:

Arquivado

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

  • 0
Jack Oliveira

Recuperar Senha Erro

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


  • 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.