Ir para conteúdo

Arquivado

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

Mel  Nunes

Esqueci senha recuperar com função mail via local configuração dando e

Recommended Posts

Pessoal preciso urgentemente de um sistema de recuperar senha já fiz n coisas, já vi diversos posts sobre esse assunto e não da certo. Fiz pelo mail mas coloquei um e-mail do gmail fui lá no php.ini fiz tudo e nada da certo preciso que a pessoa receba um e-mail com seu dados e a senha esquecida via localhost postgres estava assim:

 

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From: Portal <meunome@gmail.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="exPriority:1\n..";//prioridade e-mail
if(mail("meunome@gmail.com",$destinatario,$assunto, $corpo, $headers)){ Ta dando erro aqui no sendmail php.ini
php.ini
[mail function]
; For Win32 only.
SMTP = localhost aqui tinha colocado smtp.gmail.com
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com Aqui tinha colocado meu email
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
Só que ontem a noite estudando muito essa parte vi que tem um sendmail para baixar descompactar e por o caminho path baixei um mais o arquivo tava incompleto então preciso de ajuda realmente. Vocês sabem uma maneira mais fácil tipo com phpmailer sei fazer para enviar e-mails, mas como coloco um metodo para mostra a senha do usuario do banco em seu email quando digitar seu e-mail abrir lá ta a senha e tal. Já fiz de diversas maneiras se alguém puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc não precisa mexer no seu php.ini

baixa o PHPmailer https://github.com/S...hive/master.zip

Nele tem exemplo bem simples na pasta EXEMPLES

<?php
    require 'PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPDebug = 0;
    $mail->Debugoutput = 'html';
    $mail->Host = "smtp.gmail.com.br";
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->IsHTML(true);
    $mail->Username = "email_do_remetente@gmail.com";
    $mail->Password = "senha";
    $mail->setFrom('email_do_remetente@gmail.com', 'nome do remetente');
    $mail->addAddress('email_do_destinatario@email.com.br', 'nome do destinatario');
    $mail->Subject = 'Titulo do email';
    $mail->Body = 'teste de mensagem no corpo do email';
    
    //send the message, check for errors
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Enviado";
    }
?>

http://forum.imasters.com.br/topic/538733-envio-de-e-mail-autenticado-e-valido/

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

você não precisa mexer no seu php.ini

baixa o PHPmailer https://github.com/S...hive/master.zip

Nele tem exemplo bem simples na pasta EXEMPLES

<?php
    require 'PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPDebug = 0;
    $mail->Debugoutput = 'html';
    $mail->Host = "smtp.gmail.com.br";
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->IsHTML(true);
    $mail->Username = "email_do_remetente@gmail.com";
    $mail->Password = "senha";
    $mail->setFrom('email_do_remetente@gmail.com', 'nome do remetente');
    $mail->addAddress('email_do_destinatario@email.com.br', 'nome do destinatario');
    $mail->Subject = 'Titulo do email';
    $mail->Body = 'teste de mensagem no corpo do email';
    
    //send the message, check for errors
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Enviado";
    }
?>

http://forum.imasters.com.br/topic/538733-envio-de-e-mail-autenticado-e-valido/

 

Olá Wolfphw, sim eu tenho essa pasta exemples e tenho um formulário de contato com phpmailer fiquei na dúvida de como mostrar por e-mail os dados de como pegar o login e senha e mostrar no email. Tem algum ex de recuperação de senha pegando dados php do banco e utilizando ele já fiz n coisas e não funcionou agora estou querendo fazer do zero novamente creio que com função mail deve ser mais complicada pelo que vi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue exemplo do 0 para enviar senha para e-mail do solicitante, utilizando o modelo de envio de e-mail do wolfphw

 

Formulário em HTML

<html>
	<body>
		<form action="consulta.php" method="GET">
			Digite o e-mail para recuperar a senha <input type="text" name="email" value=""><br/>
			<input type="submit" value="Enviar">
		</form>
	</body>
<html>

script consulta.php

<?php

	/* Recupera senha e envia e-mail */
	
	
	$email = $_GET['email']; // Recupera email informado do formulario
	
	/* Cria conexão com banco de dados */
	$con = mysql_connect("localhost", "user", "senha");
	mysql_select_db("nome_da_base", $con);
	
	/* Pesquisa por e-mail informado e retorna senha */
	$sql = "SELECT senha FROM usuarios WHERE email = " . $email;
	$resp = mysql_query($sql, $con);
	
	if (mysql_num_rows($resp) > 0)
	{
		$senha = '';
		while($r = mysql_fetch_array($resp))
		{
			$senha = $r['senha'];
		}
		
		$conteudo_email = 'Sua senha é: ' . $senha;
		
		/*  Com a senha em mãos envia no corpo do e-mail  */
		
		/* Ex de envio informado pelo: wolfphw */
		require 'PHPMailerAutoload.php';
		$mail = new PHPMailer;
		$mail->isSMTP();
		$mail->SMTPDebug = 0;
		$mail->Debugoutput = 'html';
		$mail->Host = "smtp.gmail.com.br";
		$mail->Port = 587;
		$mail->SMTPAuth = true;
		$mail->IsHTML(true);
		$mail->Username = "email_do_remetente@gmail.com";
		$mail->Password = "senha";
		$mail->setFrom('email_do_remetente@gmail.com', 'nome do remetente');
		$mail->addAddress('email_do_destinatario@email.com.br', 'nome do destinatario');
		$mail->Subject = 'Titulo do email';
		$mail->Body = $conteudo_email;
		
		//send the message, check for errors
		if (!$mail->send()) {
			echo "Mailer Error: " . $mail->ErrorInfo;
		} else {
			echo "Enviado";
		}
	} else 
	{
		echo 'E-mail não encontrado na base';
	}
?>

O exemplo é simples, mas se ajustar a conexão com o teu banco e o código de envio de e-mail deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

To tentando transformar aqui para usar esse código no postgres. Ta dando esse erro:

Fatal error: Call to undefined function pg_select_db() in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa desse comando pg_select_db("portal", $con); você já definiu a base de dados 'portal' na linha de cima, no comando pg_connect()

 

Na linha que está assim:

$pg = "SELECT senha FROM cadastro WHERE email = " . $email;

Coloque assim:

$pg = "SELECT senha FROM cadastro WHERE email = '" . $email . "'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um maneira mais simples de fazer é com o código abaixo, ele está testado e 100% funcional e não precisa mexer em qualquer outra configuração do PHP.

 

 

<?php
// Sua conexão com banco de dados
require_once("conection.php");
// Pega valor do campo
$emailRecupera = $_POST['emailRecupera'];
// Faz a consulta por aquele valor inserido no campo acima
$sql1 = mysql_query("SELECT Email FROM TABELA where Email='$emailRecupera'");
// Verifica se aquele email existe.
if(mysql_num_rows($sql1) == 0 ){
// se igual a 0 vai mostrar essa mensagem
echo '<script>alert("Email Incorreto ou Usuário Não Existe !!!");location.href=("../index.php");</script>';
}else{
// Se encontrar um índice pega as informações e ele envio os dados
$sql2 = mysql_query("SELECT *FROM TABELA where Email='$emailRecupera'");
// Aqui você chama as informações que serão enviadas
while($res = mysql_fetch_array($sql2)){
// No meu caso foram essas
$nome = $res['Nome'];
$login = $res['Email'];
$senha = $res['senha'];
}
$data = date('d/m/Y H:i');
// Na variável $mensagem vai as informações de recuperação como email, senha ou qualquer dados que é chamado no select acima
// Lembre-se de adicionar a variável $data no fim da mensagem para evitar de o email ser classificado como SPAM
$mensagem = "";
// Email que fará o envio para quem solicitar os dados
$para = 'email@email.com';
// Assunto do email
$assunto = 'Assunto';
$header = "From: $para\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\n\n";
if(@mail($emailRecupera,$assunto,$mensagem,$header)){
echo '<script>alert("Email de Recuperação enviado com sucesso !!!");location.href=("../index.php");</script>';
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não precisa desse comando pg_select_db("portal", $con); você já definiu a base de dados 'portal' na linha de cima, no comando pg_connect()

 

Na linha que está assim:

$pg = "SELECT senha FROM cadastro WHERE email = " . $email;

Coloque assim:

$pg = "SELECT senha FROM cadastro WHERE email = '" . $email . "'";

Agora ta dando seguinte erro:

 

 

Warning: pg_query() expects parameter 1 to be resource, string given in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php on line 19

 

Warning: pg_num_rows() expects parameter 1 to be resource, null given in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\recupera.php on line 21

E-mail não encontrado na base

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

É porque no método pg_query você primeiro passa conexão, depois a query

 

Troque

$resp = pg_query($pg, $con);

Por

$resp = pg_query($con, $pg);

 

o phpmailer ta na pasta contato ai pus o caminho assim antes não tava encontrando ai arrumei

 

require('contato/phpmailer/PHPMailerAutoload.php');

 

Mas

Deu esse erro:

 

Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
×

Informação importante

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