Ir para conteúdo

POWERED BY:

Arquivado

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

cotauberaba

Criando página [esqueci minha senha]

Recommended Posts

Olá, moçada.

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

 

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo Wanderson, a sou ainda um iniciante, e pretendo contar com sua compreensão, a página classe a q se refere é a da div class no formulário.

 

*Obs: já tentei mudar a sql tbm colocando SELECT * FROM cota_clientes WHERE email = :email, tbm não deu certo dá o mesmo erro?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wanderson

Mesmo eu mudando a sql desta forma ainda sim continua gerando o mesmo erro:

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

Você não definiu a $sql antes, cria uma variável chamada $sql antes do código acima, e depois vê se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já estria usando uma variavel chamada $sql, mas mudei o nome e nada, coloquei uma outra variavél $sql acima do código citado dentro do try{ e nada, o mesmo erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa parte do script sobre a variável $sql está correta! Só que no bindValue, ao invés de colocar "email" você tem que colocar ":email"! Outra coisa, em nenhum momento nesse script você faz a conexão com o BD, creio então que você tem um arquivo para conexão, que você inclui nesse script apresentado! Posta ele pra gente ai!

 

Obs: esse "$conecta" tem que ser um objeto! Ex:

 

<?php
$conecta = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é meu config.php

 

<?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';

}

?>

 

Outra coisa quando eu chamo o <?php include"config.php";?> ele dah erro dizendo que naum existe mesmo com outras extensões tipo "../config.php" e tal?

 

*mudei o email para :email e nada.

Mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro:

 

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

 

Alterei as permissões dos arquivos recover.php e config.php, ambas para 777, e quanto a localização a cinfig.php se encontra em um diretório chamado Connections na raíz, é recover.php está na raíz.

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.