Ir para conteúdo

POWERED BY:

Arquivado

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

guih_oliveira10

[Resolvido] Script lembrar senha não funciona

Recommended Posts

gente é o seguinte.

 

copiei aqui deste site mesmo um script pra lembrar senha e enviar por email

 

e nao ta funcionando, ja configurei tudo e nao da!!!pq?

 

 

<?PHP
# ---------- Autor ---------------------------------->
#
# Script Desenvolvido por Anderson Brito em 07/01/2002
# Email: anderson-rj@linuxbr.com.br ou anderson@linuxclub.com.br
# ----------- Sobre o Script ----------------------->
#
# Script de Lembrar Senha
# Este script procura um email cadastrado em um banco de dados e o retorna para a conta de email
# encontrada a sua senha de conexao ao site !
#
# Obs:
# Preste atenção nas configurações que você tem que mudar !
#
# Qualquer duvida envie um e-mail!
#
# ---------------------------------------------------->
# Abaixo use as suas configurações
#Banco de Dados
$bd_host = "localhost"; // nome do host do hospediro do Banco de dados //
$bd_usr = "root"; // nome do usuario do Banco de dados //
$bd_pass = ""; // Senha do Banco de dados //
$bd_banco_de_dados = "membros"; // Nome do Banco de dados //
$tabela = "logins"; // nome da tabela onde deve ser procurado a senha
#Webmaster
$nome_webmaster = "Seu_Nome";
$email_do_webmaster = "Seu_Nome";
#Site
$nomedosite = "Nome_do_site";
$linkdosite = "http://www.nomesite.com.br";
?>

<?
if ($submit){ #Verificar se o Formulario foi enviado !!
if (!$email){ #Verificar se o email possue @ Senão anvia msg de email invalido!!
$erro = "O E-mail esta em Branco !!";
} else if (strpos ($email, "@")) {
$email = $email;
} else {
$erro = "Desculpe!, mais o seu email esta invalido!!";
}

if (!$erro){ #Senão exite erros ! Procura o email no banco de dados

$conectar = mysql_connect($bd_host, $bd_user, $bd_pass) or die (mysql_error());
mysql_select_db($bd_banco_de_dados, $conectar);
$sql = mysql_query("SELECT * FROM $tabela WHERE Email = '$email'");
$total = mysql_num_rows($sql); # Conta quantos emails foram encontrados na busca -- query!
if ($total == 1){ # Se o total de emial for igual a 1 ele envia a senha por email se for diferente de 1
# Envia uma msg de erro !

while($l = mysql_fetch_array($sql)) {
# Aqui você deve colocar os dados que você quer retirar da tabela do Banco de dados
# Aqui eu retirei os campos usuario, nome, e senha, Basta você mudar os dados $l[x]; onde x = qualquer
campo # do seu banco de dados !

$enivar = "Lembrar Senha!!! ".$nomedosite." ";
$enivar .= $l[avatar];
$enviar .= " ";
$enviar .= $l[Nome];
$enviar .= " ";
$enviar .= $l[senha];
}
$enviar .= " ";
$enviar .= "Obrigado!! Abraços do WebMaster: ".$nome_webmaster." ";
$enviar .= " ".$linkdosite." ";
$enviar .= " ";
$enviar .= " Webmaster: ".$email_do_webmaster." ";

mail("$email", "[$nomedosite][Lembrar Senha]", $enviar,"From: $email_do_webmaster <$nomedosite> ");
$erro = "Sua senha foi enviada para sua conta de email com sucesso! Obrigado !";

}else{
$erro = "Desculpe! Seu e-mail não esta cadastrado em nosso site ou Talves você tenha se cadastrado com outro email! ";
}
}

}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF; ?>">
 <div align="left">
   <? if ($erro){echo $erro; } ?>
   <p><font color="#000000"><b>Lembrar Senha</b></font></p>
   <p><b><font color="#000000">e-mial:</font></b>
     <input type="text" name="email">
   </p>
   <p>
     <input type="submit" name="submit" value="Enviar" width="150">
   </p>
 </div>
</form>
</body>
</html>

 

aparece o erro:

 

"); $erro = "Sua senha foi enviada para sua conta de email com sucesso! Obrigado !"; }else{ $erro = "Desculpe! Seu e-mail não esta cadastrado em nosso site ou Talves você tenha se cadastrado com outro email! "; } } } ?>

 

 

 

por favor me ajudem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente o problema é no comentário no meio do código, que quebrou a linha antes da hora.

 

Troque por isto

/**
 * Aqui você deve colocar os dados que você quer retirar da tabela do Banco de dados
 * Aqui eu retirei os campos usuario, nome, e senha, Basta você mudar os dados $l[x]; onde x = qualquer
 * campo do seu banco de dados
 */

Veja se resolve.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

a linha 56 e 57, estao "$enivar" troque elas por "$enviar" se for so esse erro entao ta resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as mensagens de erro, colocando este código no início do script.

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>

Além disto, verifique se o e-mail não chegou no lixo eletrônico ou spam no seu e-mail.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as mensagens de erro, colocando este código no início do script.

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>

Além disto, verifique se o e-mail não chegou no lixo eletrônico ou spam no seu e-mail.

 

Carlos Eduardo

 

continua dando erro e o email nao enviando

 

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>
<?PHP
# ---------- Autor ---------------------------------->
#
# Script Desenvolvido por Anderson Brito em 07/01/2002
# Email: anderson-rj@linuxbr.com.br ou anderson@linuxclub.com.br
# ----------- Sobre o Script ----------------------->
#
# Script de Lembrar Senha
# Este script procura um email cadastrado em um banco de dados e o retorna para a conta de email
# encontrada a sua senha de conexao ao site !
#
# Obs:
# Preste atenção nas configurações que você tem que mudar !
#
# Qualquer duvida envie um e-mail!
#
# ---------------------------------------------------->
# Abaixo use as suas configurações
#Banco de Dados
$bd_host = "localhost"; // nome do host do hospediro do Banco de dados //
$bd_usr = "root"; // nome do usuario do Banco de dados //
$bd_pass = ""; // Senha do Banco de dados //
$bd_banco_de_dados = "membros"; // Nome do Banco de dados //
$tabela = "logins"; // nome da tabela onde deve ser procurado a senha
#Webmaster
$nome_webmaster = "Seu_Nome";
$email_do_webmaster = "Seu_Nome";
#Site
$nomedosite = "Nome_do_site";
$linkdosite = "http://www.nomesite.com.br";
?>

<?php
if ($submit){ #Verificar se o Formulario foi enviado !!
if (!$email){ #Verificar se o email possue @ Senão anvia msg de email invalido!!
$erro = "O E-mail esta em Branco !!";
} else if (strpos ($email, "@")) {
$email = $email;
} else {
$erro = "Desculpe!, mais o seu email esta invalido!!";
}

if (!$erro){ #Senão exite erros ! Procura o email no banco de dados

$conectar = mysql_connect($bd_host, $bd_user, $bd_pass) or die (mysql_error());
mysql_select_db($bd_banco_de_dados, $conectar);
$sql = mysql_query("SELECT * FROM $tabela WHERE Email = '$email'");
$total = mysql_num_rows($sql); # Conta quantos emails foram encontrados na busca -- query!
if ($total == 1){ # Se o total de emial for igual a 1 ele envia a senha por email se for diferente de 1
# Envia uma msg de erro !

while($l = mysql_fetch_array($sql)) {
/**
 * Aqui você deve colocar os dados que você quer retirar da tabela do Banco de dados
 * Aqui eu retirei os campos usuario, nome, e senha, Basta você mudar os dados $l[x]; onde x = qualquer
 * campo do seu banco de dados
 */
$enviar = "Lembrar Senha!!! ".$nomedosite." ";
$enviar .= $l[Avatar];
$enviar .= $l[Nome];
$enviar .= $l[senha];
}
$enviar .= "Obrigado!! Abraços do WebMaster: ".$nome_webmaster." ";
$enviar .= " ".$linkdosite." ";
$enviar .= " Webmaster: ".$email_do_webmaster." ";

mail("$email", "[$nomedosite][Lembrar Senha]", $enviar,"From: $email_do_webmaster <$nomedosite> ");
$erro = "Sua senha foi enviada para sua conta de email com sucesso! Obrigado !";

}else{
$erro = "Desculpe! Seu e-mail não esta cadastrado em nosso site ou Talves você tenha se cadastrado com outro email! ";
}
}

}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF; ?>">
 <div align="left">
   <?php if ($erro){echo $erro; } ?>
   <p><font color="#000000"><b>Lembrar Senha</b></font></p>
   <p><b><font color="#000000">e-mial:</font></b>
     <input type="text" name="email">
   </p>
   <p>
     <input type="submit" name="submit" value="Enviar" width="150">
   </p>
 </div>
</form>
</body>
</html>

 

coloquei o codigo que você me passou e ta dando erro nas linhas 38 e 87:

 

 

38:

if ($submit){ #Verificar se o Formulario foi enviado !!

 

87:

<?php if ($erro){echo $erro; } ?>

 

por favor me ajudem!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro?

 

Carlos Eduardo

 

os erros:

 

Notice: Undefined variable: submit in C:\wamp\www\esqueci.php on line 38

 

Notice: Undefined variable: erro in C:\wamp\www\esqueci.php on line 87

 

obs: o formulario aparece so que encima dele esta estas mensagens de erro, retirei este codigo:

 

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>

 

e a pagina aparece sem erros so que nao envia e nem da nenhum erro quando digito um email invalido!!!

 

o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo. O erro significa que você está usando uma variável que não foi definida (ou no caso 2, $submit e $erro).

 

O erro está acontecendo porque o seu código foi desenvolvido para register_global em ON, e o seu servidor deve estar em OFF (que é o recomendado).

 

As variáveis devem ser resgatadas de acordo com a forma que foram enviadas. Pode ser $_POST, $_GET, $_SESSION, $_COOKIE.

 

http://br.php.net/manual/en/reserved.variables.post.php

http://br.php.net/manual/en/reserved.variables.get.php

http://br.php.net/manual/en/reserved.variables.session.php

http://br.php.net/manual/en/reserved.variables.cookie.php

 

Vou dar um exemplo. O seu formulário tem um input que se chama submit. Você está recebendo como $submit. Troque por $_POST['submit'] ($_POST porque o seu formulário utiliza método POST)

 

Não retire o código de exibição de erros, eles não vão deixar de existir, somente vão deixar de serem exibidos. Somente retire este código após o script estar funcionando 100%.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não retire o código de exibição de erros, eles não vão deixar de existir, somente vão deixar de serem exibidos. Somente retire este código após o script estar funcionando 100%.

 

 

troquei o $submit por $_POST['submit'] e continua dando erro nas linhas 38 e 87.

nao retirei o codigo dos erros, e continua nao enviando o email.

 

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>
<?PHP
# ---------- Autor ---------------------------------->
#
# Script Desenvolvido por Anderson Brito em 07/01/2002
# Email: anderson-rj@linuxbr.com.br ou anderson@linuxclub.com.br
# ----------- Sobre o Script ----------------------->
#
# Script de Lembrar Senha
# Este script procura um email cadastrado em um banco de dados e o retorna para a conta de email
# encontrada a sua senha de conexao ao site !
#
# Obs:
# Preste atenção nas configurações que você tem que mudar !
#
# Qualquer duvida envie um e-mail!
#
# ---------------------------------------------------->
# Abaixo use as suas configurações
#Banco de Dados
$bd_host = "localhost"; // nome do host do hospediro do Banco de dados //
$bd_usr = "root"; // nome do usuario do Banco de dados //
$bd_pass = ""; // Senha do Banco de dados //
$bd_banco_de_dados = "membros"; // Nome do Banco de dados //
$tabela = "logins"; // nome da tabela onde deve ser procurado a senha
#Webmaster
$nome_webmaster = "Seu_Nome";
$email_do_webmaster = "Seu_Nome";
#Site
$nomedosite = "Nome_do_site";
$linkdosite = "http://www.nomesite.com.br";
?>

<?php
if ($_POST['submit']){ #Verificar se o Formulario foi enviado !!
if (!$email){ #Verificar se o email possue @ Senão anvia msg de email invalido!!
$erro = "O E-mail esta em Branco !!";
} else if (strpos ($email, "@")) {
$email = $email;
} else {
$erro = "Desculpe!, mais o seu email esta invalido!!";
}

if (!$erro){ #Senão exite erros ! Procura o email no banco de dados

$conectar = mysql_connect($bd_host, $bd_user, $bd_pass) or die (mysql_error());
mysql_select_db($bd_banco_de_dados, $conectar);
$sql = mysql_query("SELECT * FROM $tabela WHERE Email = '$email'");
$total = mysql_num_rows($sql); # Conta quantos emails foram encontrados na busca -- query!
if ($total == 1){ # Se o total de emial for igual a 1 ele envia a senha por email se for diferente de 1
# Envia uma msg de erro !

while($l = mysql_fetch_array($sql)) {
/**
 * Aqui você deve colocar os dados que você quer retirar da tabela do Banco de dados
 * Aqui eu retirei os campos usuario, nome, e senha, Basta você mudar os dados $l[x]; onde x = qualquer
 * campo do seu banco de dados
 */
$enviar = "Lembrar Senha!!! ".$nomedosite." ";
$enviar .= $l[Avatar];
$enviar .= $l[Nome];
$enviar .= $l[senha];
}
$enviar .= "Obrigado!! Abraços do WebMaster: ".$nome_webmaster." ";
$enviar .= " ".$linkdosite." ";
$enviar .= " Webmaster: ".$email_do_webmaster." ";

mail("$email", "[$nomedosite][Lembrar Senha]", $enviar,"From: $email_do_webmaster <$nomedosite> ");
$erro = "Sua senha foi enviada para sua conta de email com sucesso! Obrigado !";

}else{
$erro = "Desculpe! Seu e-mail não esta cadastrado em nosso site ou Talves você tenha se cadastrado com outro email! ";
}
}

}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF; ?>">
 <div align="left">
 <?php if ($erro){echo $erro; } ?>
 <p><font color="#000000"><b>Lembrar Senha</b></font></p>
 <p><b><font color="#000000">e-mail:</font></b>
 <input type="text" name="email">
 </p>
 <p>
 <input type="submit" name="submit" value="Enviar" width="150">
 </p>
 </div>
</form>
</body>
</html>

 

o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que pode ser?

 

O erro está acontecendo porque o seu código foi desenvolvido para register_global em ON, e o seu servidor deve estar em OFF (que é o recomendado).

 

As variáveis devem ser resgatadas de acordo com a forma que foram enviadas. Pode ser $_POST, $_GET, $_SESSION, $_COOKIE.

 

Vou dar um exemplo

 

Eu dei 1 exemplo. Você precisa alterar as outras variáveis do seu código. Leia as referências que eu postei e tente entender o que eu falei.

 

if ($_POST['submit'])
Não confie nisto. Utilize a função isset (testa se foi setada) em conjunto com a função empty (testa se está vazia). Neste tópico foram dadas algumas explicações sobre isto.

http://forum.imasters.com.br/index.php?/topic/366540-expressao-if/

 

Aqui as referências das funções.

http://br.php.net/isset

http://br.php.net/manual/pt_BR/function.empty.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

o que pode ser?

 

O erro está acontecendo porque o seu código foi desenvolvido para register_global em ON, e o seu servidor deve estar em OFF (que é o recomendado).

 

As variáveis devem ser resgatadas de acordo com a forma que foram enviadas. Pode ser $_POST, $_GET, $_SESSION, $_COOKIE.

 

Vou dar um exemplo

 

Eu dei 1 exemplo. Você precisa alterar as outras variáveis do seu código. Leia as referências que eu postei e tente entender o que eu falei.

 

if ($_POST['submit'])
Não confie nisto. Utilize a função isset (testa se foi setada) em conjunto com a função empty (testa se está vazia). Neste tópico foram dadas algumas explicações sobre isto.

http://forum.imasters.com.br/index.php?/topic/366540-expressao-if/

 

Aqui as referências das funções.

http://br.php.net/isset

http://br.php.net/manual/pt_BR/function.empty.php

 

Carlos Eduardo

 

 

vou ler e depois te falo ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

poderia compartilhar a sua solução para facilitar futuras buscas sobre o assunto shereck

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.