Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
boas... gostava de criar um sript para recuperação da password, onde o usuario tivesse que inserir o email e ao clicar no botao recuperar a pergunta secreta que preencheu na altura da inscriçao aparecia na tela. Caso respondesse bem, o script enviava para o seu email a password.
o código que estou a fazer é:
<?
include '../Produtos/conexao.php';
mysql_select_db('clientes,$con');
$sql = "SELECT `password`,`perguntasecreta`,`respostasecreta`,`email` FROM `clientes`";
$procura = mysql_query($sql) or die ( mysql_error());
while($dados = mysql_fetch_assoc($procura)){
$dados = $password;
$dados = $perguntasecreta;
$dados = $email;
}
if(! mysql_query($sql)){
echo "Erro! - Houve um erro ao recuperar os dados de cliente.".mysql_error();
// Se recuperar bem, envia o email.
?>
<form action="recuperar.php" method="post">
<? echo "$dados"; ?>
<br>
Resposta: <INPUT TYPE="text" NAME="respostasecreta">
<br>
Insira o Email: <INPUT TYPE="text" NAME="email">
<br>
<INPUT TYPE="submit" name="enviar" VALUE="Recuperar">
</form>
<?
}else{
// Cria as variaveis para validar o email.
$dados = "A sua Password de acesso ao site é: $password"."\n";
// envia o email
mail($email, "Recuperacao da Password!", $dados);
}
?>
mas isto n esta a funcionar nada bem... podem ajudar-me?
tentei isto mas n ta a dar...
<?
include '../Produtos/conexao.php';
mysql_select_db('clientes,$con');
$sql="SELECT * FROM clientes WHERE username='$username' and email='$email'";
$procura = mysql_query($sql) or die ( mysql_error());
while($dados = mysql_fetch_assoc($procura)){
$dados = $password;
$dados = $perguntasecreta;
$dados = $email;
}
if(! mysql_query($sql)){
echo "Erro! - Houve um erro ao recuperar os dados de cliente.".mysql_error();
// Se recuperar bem, envia o email.
$result=mysql_query($sql);
// Conta o número de linhas inseridas na tabela
$count=mysql_num_rows($result);
?>
<form action="recuperar.php" method="post">
<? echo "$dados"; ?>
<br>
Resposta: <INPUT TYPE="text" NAME="respostasecreta">
<br>
Insira o Email: <INPUT TYPE="text" NAME="email">
<br>
<INPUT TYPE="submit" name="enviar" VALUE="Recuperar">
</form>
<?
}else{
// Cria as variaveis para validar o email.
$dados = "A sua Password de acesso ao site é: $password"."\n";
// envia o email
mail($email, "Recuperacao da Password!", $dados);
}
?>Existem varios erros ai!
->Primeiro, você esta sobrescrevendo a variavel $dados 3 vezes em cada iteracao do loop.(concatene, em vez de atribuir simplesmente)
->você so deveria fazer a consulta, e tudo mais, SE o usuario enviar o formulario.
->você deveria receber um $_POST['email'], e nao um $email.. pois register_globals, deve ficar desativado.(depois nao se esqueca de tratar os dados enviados)
->o $username, nao faz o menor sentido com o teu formulario atual.
->Ja vai mostrar os dados na tela assim ? e se alguem ficar forcando varias combinacoes, para descobrir as senhas dos teus usuarios ?
->Use a tag completa: <?php em vez de <?
> ->Use a tag completa: <?php em vez de <?
Desculpe fugir do topico mas, influencia o <? do <?php?>
Desculpe fugir do topico mas, influencia o <? do <?php?
Sim, influenciará no PHP6.. Nas versões atuais isso não faz diferença... Mas convenciona-se que devemos adotar o uso do <?php para evitar o fim do mundo. :Presolvido
você precisa fazer um WHERE no SQL, para trazer apenas a senha do cara que te informou a respotaSecreta..
mas informar uma resposta, sem nenhuma pergunta eh muuuito estranho.
Seria bacana que você pedisse para ele informar o login tb.
Ai você baseia o WHERE nessas 2 informacoes.