Ir para conteúdo

POWERED BY:

Arquivado

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

saulo Fidelis

script para realizar recuperação de senha

Recommended Posts

Boa noite. Alguém me ajude.

Tenho um script para realizar recuperação de senha em determinado login, e esse código tem me setado um erro

que esta me deixando confuso, pois tenho pouco conhecimento, peço que alguém me ajude, por favor.

Esse é o erro:

(!)[/size] Erro fatal: Não é possível acessar a propriedade vazia em C: \ wamp \ www \ \ recover.php na linha 13

 

esse é o codigo:

 

<?php
   require_once 'Scripts.php';
require_once'phpmailer/class.phpmailer.php'; 
 
if(isset($_POST['ok'])):
   $nome = $_POST['nome'];
 
$email = $_POST['email'];
$dados = verifica_nome($nome);
if($dados):
 
enviarEmail($email, $dados->$clienteId); <<<o erro é nessa linha>>>
         
else:
     echo 'Cadastro não existente';
 
endif;
 
endif;
    
?>  

esse é o script <<<function>>>

 

 

<?php 
 
 function enviarEmail($email, $clienteId){
$mail = new PHPMailer();
$mail->Charset = "UTF-8";
$mail->SMTPSecure = "ssl";
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "xxxxxxxxxxxxxxxx";
$mail->Password = "xxxxxxxxxxxxx";
$mail->IsHTML(true);
 
$mail->SetFrom('xxxxxxxxxxxxxxx');
$mail->From = 'xxxxxxxxxxxxxxxxxxxx';
$mail->FromName = 'xxxxxxxxxxxxxx';
$mail->AddAddress($email);
$mail->AddAddress('xxxxxxxxxxxxxxxxxxxx');
$mail->Subject = 'Recuperar senha';
$mail->Body = "Você pediu para recuperar senha do site xxxxxxxxxxxxxx";
$mail->Body .= "Clique no link abaixo e redefina sua senha<br />";
$mail->Body .= "<a href='[url=http://localhost/php/admin/index/redefine.php?clienteId=]http://localhost/php/admin/index/redefine.php?clienteId=[/url]".$clienteId."'>Redefinir senha</a>";
//$mail->MsgHTML();
 
if ($mail->Send()):
    return true;
    echo 'Enviado com sucesso';
else:
        echo 'Erro ao enviar';
    return false;
endif;
 
}
function verifica_nome($nome){
 
$pdo = new PDO('mysql:host=localhost;dbname=xxxx', 'xxx','xxxx');
$verifica = $pdo->prepare("SELECT * FROM up_clientes WHERE nome = ?");
$verifica->bindValue(1, $nome);
$verifica->execute();
return ($verifica->rowCount() == 1) ? $verifica->fetch(PDO::FETCH_OBJ) : false;
}
function atualizar_senha($senha,  $clienteId){ 
$pdo = newPDO("mysql:host=localhost;dbname=xxxx", "xxxx", "xxxx");
   $atualizar = $pdo->prepare("UPDATE up_clientes SET senha = ? WHERE clienteId = ?");
$atualizar->bindvalue(1, md5($senha));
$atualizar->bindvalue(2,  $clienteId);
$atualizar->execute();
 
return($atualizar->rowCount() == 1) ? true : false;
}
 
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sintaxe correta é $dados->clienteId (sem o cifrão antes de "clienteId")

Boa tarde.

Caro amigo Beraldo, sou um iniciante interessado em aprender, peço desculpa pela minha persistência. Pois bem;

quando tiro o cifrão do clienteId, tenho o seguinte erro: como posso resolve-lo.

 

( ! ) Fatal error: Class 'SMTP' not found in C:\wamp\www\ImobiliariaFidelis\admin\phpmailer\class.phpmailer.php on line 1291 Call Stack # Time Memory Function Location 1 0.0004 258040 {main}( ) ..\recover.php:0 2 0.0149 986464 enviarEmail( ) ..\recover.php:12 3 0.0158 1004528 PHPMailer->send( ) ..\Scripts.php:30 4 0.0160 1013736 PHPMailer->postSend( ) ..\class.phpmailer.php:1060 5 0.0160 1014104 PHPMailer->smtpSend( ) ..\class.phpmailer.php:1156 6 0.0160 1014936 PHPMailer->smtpConnect( ) ..\class.phpmailer.php:1311 7 0.0160 1015928 PHPMailer->getSMTPInstance( ) ..\class.phpmailer.php:1374

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se o arquivo class.smtp.php está na mesma pasta que o arquivo class.phpmailer.php

 

 

Links úteis:

Principais mensagens de erro, explicadas: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/

15 Dicas de PHP: http://www.ultimatephp.com.br/guia/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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