[PHP] Przypominanie hasła e-mailem


(Ryan370z) #1
if ($_POST['ZMail'])

{

  $zm = $_POST['ZMail'];

  if (strtr($zm, "#!$%^&*()-=_+{}][\":;'><,?`~/*\||" , 'a')) { echo ('Adres e-mail nie może posiadać znaków specjalnych'); return FALSE; }

  $zm2 = md5($zm);

  $count=mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE 'mail' ='$zm2'"));

  if($count>1) {

  $to=$zm;

  $subject="Zresetowanie hasła w grze internetowej FullImpact";

  $header="from: administrator ";

  $messages= "Twoje nowe, wygenerowane hasło do konta to: ";

  $sentmail = mail($to,$subject,$messages,$header);

}

else {

  echo "Nie znaleziono takiego adresu e-mail w naszej bazie"; }


if($sentmail){

  echo "Twoje nowe hasło zostało wysłane."; }

else {

echo "Nie mogliśmy wysłać hasła na Twój adres. Spróbuj jeszcze raz"; }

}

Problem jest taki, że nieależnie od e-maila (czy istnieje w bazie, czy nie) pokazuje komunikat że nie znaleziono e-maila w bazie.


(Drobok) #2
  1. Szyfrujesz maile w bazie danych ?

2.

$count=mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE 'mail' ='$zm2'")); [/code]

Widać mała styczność z mysql, nie daje się wszystkiego w apostrofy, powinno być:

[code=php]$count=mysql_num_rows(mysql_query("SELECT * FROM users WHERE mail ='$zm2'")); 


(GioWDS) #3

@drobok: nazwy pól nie daje się między '', ale jest jak najbardziej na miejscu. Chociaż fakt faktem w fragmencie który podałeś apostrofy powinno się usunąć - chodzi o pole mail.