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

Senha Email


frnd

Pergunta

Seguinte,

Caso o usuário esqueça da senha de acesso ao sistema ele terá como informar seu CPF para que a senha seja enviada para o email (email já cadastrado)

Para isso, existem 4 niveis de usuarios, mas como eu vou percorrer todas as tabelas testando o CPF em cada uma, e se encontrar, ele já envia a senha automaticamente?

[]s

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

simples..

pega o cpf e verifica ele na 1a tabela..

Se tiver linhas afetadas, ou seja, se tiver algum registro é porque o achou, então, enviar email com senha para esse caso.

se não achar nada na 1a tabela, procurar na 2a...

Vai ficar alguma coisa, +/- assim.. Alguém que saiba um pouco mais de php, me corrija se eu errar alguma coisa..

$CPF;
mysql_query("select * from tbTabela1 where cpf = $CPF");
   if mysql_affected_rows > 0{
      //mandar email com a senha;}
   else{
          mysql_query("select * from tbTabela2 where cpf = $CPF");
          if mysql_affected_rows > 0
(...) e assim por diante..



Ou então pode testar tudo de uma vez só guardar a senha..

mysql_query("select * from tbTabela1 where cpf = $CPF");
   if mysql_affected_rows > 0{
//guardar senha em variável}

mysql_query("select * from tbTabela2 where cpf = $CPF");
   if mysql_affected_rows > 0{
//guardar senha em variável}

assim, se achar alguma coisa, vai guardar a senha. se não achar nada, vai ficar em branco.

Bom, é uma sugestão.. Talvez tenha maneira mais fácil de fazer isso..

Boa sorte!

Link para o comentário
Compartilhar em outros sites

  • 0

Tu não acha mesmo que eu vou procurar na modelagem onde estão as tabelas relacionadas né? Coloca AQUI as tabelas e as ligações entre elas pra assim conseguir definir uma query... provavelmente um INNER JOIN ou LEFT JOIN já resolva... algo do tipo:

$sql = 'SELECT ta.senha, tb.senha FROM usuariologin u
LEFT JOIN tabelaa ta ON u.id=ta.id
LEFT JOIN tabelab tb ON u.id=tb.id
WHERE ta.cpf='.$cpf.' OR tb.cpf='.$cpf;

Mas só com os dados exatos dá pra fazer a query correta... o principal ponto é saber como se relaciona a tabela que contêm os registros dos login com a tabela que contêm os outros dados...

Link para o comentário
Compartilhar em outros sites

  • 0

eu coloquei assim

<?     
   $sql = "select usuariologin.senha FROM usuariologin LEFT JOIN egresso ON (egresso.id = usuariologin.id) WHERE egresso.cpf = '$cpf'";
   $exec = mysql_query($sql);
   if (mysql_num_rows($exec) == 1) {
      $subject = "Solicitação de senha";    
      $linha = mysql_fetch_array($exec);
      $senha = $linha['senha'];
      $msg = "Sua senha é: \"$senha\"";
      mail($email, $subject, $msg);
      }
      
     else{
     echo "<script language=\"JavaScript\">"; 
     echo "window.alert(\"CPF inválido! Por favor, tente novamente!\");";
     echo "window.location.href = '../paginas/perca_senha.php';";
     echo "</script>";
     }   
?>

mas dá esse erro

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing

na linha do mail()

Link para o comentário
Compartilhar em outros sites

  • 0

Se você lesse o manual, veria:

additional_headers (optional)

String to be inserted at the end of the email header.

This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n).

Note: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.

Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.

Ou seja, você tem que especificar um FROM no cabeçalho...

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, estou utilizando a classe phpmailer desta forma

<?
// chamada da classe phpmailer
require_once('../biblioteca/phpmailer/class.phpmailer.php');

// resgatando os dados passados pelo form
$nomeusuario = $_POST['nome'];
$emailusuario = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['msg'];

// faço a chamada da classe
$Email = new PHPMailer();
// na classe, há a opção de idioma, setei como br
$Email->SetLanguage("br");
$Email->IsMail(); 

$Email->IsHTML(true); 

$Email->From = $emailusuario;

$Email->FromName = $nomeusuario;

$Email->AddAddress("fr.pt@terra.com.br");

$Email->Subject = $assunto;


$Email->Body .= "<B>E-mail enviado por usuário<BR></b>";
$Email->Body .= "Mensagem do usuário: $msg<BR><BR>";


email //propriamente dito. Mais simples, impossível:


if(!$Email->Send())

  {

echo "A mensagem não foi enviada. <p>";
echo "Erro: " . $mail->ErrorInfo;

}

$Email->IsMail();
Mas, diz que a mensagem não pode ser enviada, oque pode ser? Consegui resolver! utilizei
<?php

require ("phpmailer/class.phpmailer.php");

$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP

$mail->Host = "mail.seudominio"; //seu servidor SMTP

$mail->SMTPAuth = true; // 'true' para autenticação

$mail->Username = "usuario@seudominio"; // usuário de SMTP

$mail->Password = "senhaxxx"; // senha de SMTP

$mail->From = "de@seudominio";

//coloque aqui o seu correio, para que a autenticação não barre a mensagem

$mail->FromName = "remetente";

$mail->AddAddress("email@destinatario","Nome do Destinatario ");

$mail->AddAddress("email@destinatario"); // (opcional) só o envio pelo email

$mail->AddReplyTo("email@destinatario.copia","Nome do Destinatario com cópia");

//aqui você coloca o endereço de quem está enviando a mensagem pela sua página
$mail->WordWrap = 50; // Definição de quebra de linha

$mail->AddAttachment("/caminho/do/anexo/no/servidor.ext"); // (opcional) anexos

$mail->AddAttachment("/caminho/do/anexo/servidor.ext","nome_do_anexo.ext"); // (opcional) mais anexos

$mail->IsHTML(true); // envio como HTML se 'true'
$mail->Subject = "Assunto da mensagem ";

$mail->Body = "Conteúdo da mensagem HTML ";

$mail->AltBody = "Para mensagens somente texto";

if(!$mail->Send())

{

echo "Mensagem não enviada

";

echo "Mailer Error: " . $mail->ErrorInfo;

} else {

echo "Mensagem enviada";

}

?>

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...