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

Criando página [esqueci minha senha]


cotauberaba

Pergunta

Olá, moçada.

Sou novo aqui no forúm, e queria tirar uma dúvida com vocês?

Criei um script em PDO, para recuperar dados de um banco, sendo que a lógica e analisar o e-mail digitado em um formulário, e ir até o banco e pegar dados relacionados a esse e-mail como senha e enviá-los para o mesmo e-mail digitado?

Ou seja, recuperar senha através de um formulário esqueci minha senha!

segue o script abaixo para analisarem o que acontece, o erro que gera e o seguinte:

Fatal error: Call to a member function prepare() on a non-object in /home/cotauberaba/www/teste/admin/recover.php on line 20

script:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>CotaUberaba | Painel de Administração</title>

<link href="login_style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="login">

<img src="images/logo.png" alt="" />

<?php if(isset($_POST['logar'])){

$email = $_POST['email'];

$sql = 'SELECT email cota_clientes WHERE email = :email';

try{

$query = $conecta->prepare($sql);

$query->bindValue('email',$email,PDO::PARAM_STR);

$query->execute();

$res = $query->fetchAll(PDO::FECTH_ASSOC);

}catch(PDOexception $error_email){

echo 'Erro ao selecionar email '.$error_email->getMessage();

}

foreach($res as $resEmail){

$nome = $resEmail['nome'];

$email = $resEmail['email'];

$senhas = $resEmail['senhas'];

$mail_data = date('Y/m/d H:i:s');

$destinatario = 'contato@cotauberaba.com.br';

$assuntoEmail = 'Novo cliente cadastrado '.$nome;

$headers = "From: $destinatario\n";

$headers .= "content-type: text/html; charset = \"utf-8\"/n/n";

$mensagemRecupera = "

REeenvio de Dados<br />

<strong>Usuário Nome:</strong> $nome<br />

<strong>Usuário E-mail:</strong> $email<br />

<strong>Usuário senha:</strong> $senhas.

<br />

<br />

Mensagem enviada em $mail_data.

";

mail($destinatario,$assuntoEmail,$mensagemRecupera,$headers);

$susuarioAssunto = 'Reenvio de Dados COTAUBERABA';

$mensagemUsuario = "

<strong>E-mail de segurança, guarde este e-mail para futuras consultas!</strong><br />

Seus dados são: <br /><br />

Login: $email<br />

Senha: $senhas<br /><br />

Está é uma mensagem automática de nosso sistema, você não precisa responder a mesma!

<br />

<br />

Mensagem enviada em $mail_data.

";

mail($email,$usuarioAssunto,$mensagemUsuario,$headers);

}//if

}//foreach

?>

<form name="login_painel" action="" method="post">

<span class="envie">Para receber os dados de acesso, informe abaixo seu email de login</span>

<label><span>E-mail: </span><input type="text" name="email" /></label>

<p><a href="index.php">[ Voltar e logar ]</a></p>

<input type="submit" name="logar" value="Recuperar" class="btn" />

</form>

</div><!--FECHA DIV LOGIN-->

</body>

</html>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

cotauberaba,

Ao postar código fonte, insera-o entre as tags CODE.

A variável $conecta não é um objeto. Ou seja, não existe o método prepare() no objeto $conecta.

Primeiro você tem que criar um objeto e depois invocar um método.

Ex.:

$conecta = new Conecta();

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Romero, obrigado pela atenção!!!

Mas já crio todo o procedimento em meu arquivo config.php

script:

<?php

 define('HOST','mysql103.prv.f1.k8.com.br');

 define('DB','cotauberaba');

 define('USER','cotauberaba');

 define('PASS','senhascota');

 $conexao = 'mysql:host='.HOST.'; dbname='.DB;

 try{

         $conecta = new PDO($conexao,USER,PASS);

         $conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

         

        }catch(PDOexception $error_conecta){

                echo 'Erro ao Conectar, favor informe no email contato@cotauberaba.com.br';

        }

?>

Link para o comentário
Compartilhar em outros sites

  • 0

você está importando o config.php em seu script?

Pois seu erro é claro:

Fatal error: Call to a member function prepare() on a non-object in /home/cotauberaba/www/teste/admin/recover.php on line 20

$conecta não é um objeto

Link para o comentário
Compartilhar em outros sites

  • 0

GRande Romero, parece-me que você conseguiu mem mostrar o caminho das pedras depois d muito pesquisar por aew.

Veja bem conforme o código abaixo, realizaei a conexão através da chamada do include, mas agora surge um erro no fetchAll:

erro:

Fatal error: Undefined class constant 'FECTH_ASSOC' in /home/cotauberaba/www/teste/admin/recover.php on line 25

script completo:

<?php include_once("../Connections/config.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CotaUberaba | Painel de Administração</title>
<link href="login_style.css" rel="stylesheet" type="text/css" />
</head>

<body>

 <div id="login">
    <img src="images/logo.png" alt="" />

    <?php if(isset($_POST['logar'])){
    $email = $_POST['email'];
    
    $sql= 'SELECT * FROM cota_clientes WHERE email = :email';
    
    try{ 
        $query = $conecta->prepare($sql);
        $query->bindValue(':email',$email,PDO::PARAM_STR);
        $query->execute();
        
        $res = $query->fetchAll(PDO::FECTH_ASSOC);
        
        }catch(PDOexception $error_email){
        echo 'Erro ao selecionar email '.$error_email->getMessage();    
        }
        
        foreach($res as $resEmail){
            $nome = $resEmail['nome'];
            $email = $resEmail['email'];
            $senhas = $resEmail['senhas'];
            
     $mail_data = date('Y/m/d H:i:s');
     $destinatario = 'contato@cotauberaba.com.br';
     $assuntoEmail = 'Novo cliente cadastrado '.$nome;
     $headers = "From: $destinatario\n";
     $headers .= "content-type: text/html; charset = \"utf-8\"/n/n";
     
     $mensagemRecupera = "
       REeenvio de Dados<br />
       <strong>Usuário Nome:</strong> $nome<br />
       <strong>Usuário E-mail:</strong> $email<br />
       <strong>Usuário senha:</strong> $senhas.
       
       <br />
       <br />
       Mensagem enviada em $mail_data.
     ";
     mail($destinatario,$assuntoEmail,$mensagemRecupera,$headers);
     
     $susuarioAssunto = 'Reenvio de Dados COTAUBERABA';
     $mensagemUsuario = "
       <strong>E-mail de segurança, guarde este e-mail para futuras consultas!</strong><br />
       Seus dados são: <br /><br />
       Login: $email<br />
       Senha: $senhas<br /><br />
       
       Está é uma mensagem automática de nosso sistema, você não precisa responder a mesma!
       <br />
       <br />
       Mensagem enviada em $mail_data.
     ";
     mail($email,$usuarioAssunto,$mensagemUsuario,$headers);
    
        }//if
    }//foreach

    ?>
  
    <form name="login_painel" action="" method="post">
    <span class="envie">Para receber os dados de acesso, informe abaixo seu email de login</span>
     <label><span>E-mail: </span><input type="text" name="email" /></label>
     <p><a href="index.php">[ Voltar e logar ]</a></p>
     <input type="submit" name="logar" value="Recuperar" class="btn" />
   
    </form>

 </div><!--FECHA DIV LOGIN-->

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, corrigodo e enviando e-mail's normalmente, mas quando envio aparece o email do usuario e remetente com especificações há frente: tipo cotauberaba@cotauberaba: 250 OK e igualemnte para o usuario, vow v se encontro a razão disto aki, um grd abraassss e mais uma vez muito obrigado.

Que Deus lhe dê em dobro o que compartilha com os pessoas como eu que estás a aprender.

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