Witam ponownie:)
Naskrobałem taki skrypt który, ma resetować zakodowane hasło w bazie. Wszystko niby działa. Po zatwierdzeniu wyskakuje monit z: "Twoje nowe hasło to: ****". Jednakże gdy patrzę do bazy to hasło wcale się nie zmieniło:( Nie wiem za bardzo czy to problem w zapytaniu SQL czy w całej funkcji. Wolę zapytać lepszych. Oto kod:
static public function forgot()
{
require_once 'config.php';
db_connect();
// sprawdzamy czy user nie jest przypadkiem zalogowany
if(!$_SESSION['logged']) {
// jeśli zostanie naciśnięty przycisk "Przypomnij"
if(isset($_POST['email'])) {
// filtrujemy dane...
$_POST['email'] = clear($_POST['email']);
$_POST['password'] = clear($_POST['password']);
$_POST['password2'] = clear($_POST['password2']);
// sprawdzamy czy wszystkie pola zostały wypełnione
if(empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email'])) {
echo '<div class="content">Musisz wypełnić wszystkie pola.</div>';
// sprawdzamy czy podane dwa hasła są takie same
} elseif($_POST['password'] != $_POST['password2']) {
echo '<div class="content">Podane hasła różnią się od siebie.</div>';
// sprawdzamy poprawność emaila
} elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
echo '<div class="content">Podany email jest nieprawidłowy.</div>';
}
else {
// sprawdzamy czy są jacyś uzytkownicy z takim adresem email
$result = mysql_query("SELECT Count(user_id) FROM `users` WHERE `user_email` = '{$_POST['email']}'");
$row = mysql_fetch_row($result);
if($row[0] > 0) {
// i wykonujemy zapytanie na zmianę hasła
mysql_query("UPDATE `users` SET 'user_password' VALUES '{$_POST['password']}' WHERE 'user_email' = '{$_POST['email']}'");
echo '<div class="content">Twoje nowe hasło to: '.$_POST['password'].' </div>';
} else {
// jeśli nie istnieje...
echo '<div class="content">Nie ma użytkownika z takim adresem e-mail</div>';
}
}
}
}
db_close();
}
Gdzie zrobiłem błąd?