Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Dane z tabeli
Forum PHP.pl > Forum > Przedszkole
cracker
Witam.

Mam skrypt z przypominaniem hasła. W mejlu otrzymuje się coś takiego:
Cytat
Witaj!
Twój nick to $login
Twoje nowe hasło to $hasloodszyfrowane


Przy nowym haśle jest coś takiego:
  1. $hasloodszyfrowane = uniqid(rand()); // tworzenie nowe hasła
  2. $haslo = md5($hasloodszyfrowane); // szyfrowanie hasła

I hasło poprawnie się szyfruje. Natomiast co muszę wpisać pod tymi linijkami (wyżej), by pojawił się login użytkownika? Bo zamiast $hasloodszyfrowane jest nowe haslo, a zamiast $login puste miejsce.

To
  1. $login = mysql_query(SELECT * FROM $tabela);
ani to
  1. $login = $_GET["login"];


Nie działa..
Ten "login" jest w tabeli uzytkownik ($tabela).
vonski
  1. $result = mysql_query("SELECT * FROM $tabela");
  2. $row = mysql_fetch_assoc($result);
  3. $login = $row['login'];
mortus
Skoro korzystasz z adresu email, to najprawdopodobniej jest on unikalny dla każdego konta i zapisany w tabeli użytkowników bazy danych (przynajmniej tak powinno być), zatem poprawię nieco vonskiego:
  1. $result = mysql_query("SELECT * FROM `{$tabela}` WHERE `email` = '{$email}'");
  2. $row = mysql_fetch_assoc($result);
  3. $login = $row['login'];
cracker
Dzięki vonski! smile.gif

O to chodziło. mortus - nie wiem coś ty tam powypisywał, bo chodziło mi tylko o wyświetlenie loginu z bazy w mejlu (a nie o wysyłanie mejla). tongue.gif Ale chęci też nagradzam smile.gif

Jeszcze raz dzięki i do zamknięcia smile.gif

PS: Polecicie mi dobrą książkę do nauki PHP i Mysql na PW ? tongue.gif
mortus
Cytat(cracker @ 1.04.2012, 15:21:18 ) *
Dzięki vonski! smile.gif

O to chodziło. mortus - nie wiem coś ty tam powypisywał, bo chodziło mi tylko o wyświetlenie loginu z bazy w mejlu (a nie o wysyłanie mejla). tongue.gif Ale chęci też nagradzam smile.gif

Jeszcze raz dzięki i do zamknięcia smile.gif

PS: Polecicie mi dobrą książkę do nauki PHP i Mysql na PW ? tongue.gif

Tak, rozwiązanie vonskiego spowoduje, że użytkownik, który będzie chciał zresetować hasło otrzyma w wiadomości informację zawierającą nieprawidłowy login, który de facto zawsze będzie taki sam niezależnie od tego, który użytkownik w danej chwili resetuje hasło. Z Twoim podejściem życzę Ci powodzenia.

EDIT:
Podejrzewam, że zresetowanie hasła wiążę się u Ciebie z podaniem adresu e-mail (bo piszesz, że nowe hasło jest wysyłane na maila). To znaczy, że wcześniej musisz wpisać adres e-mail do odpowiedniego formularza i to właśnie na podstawie tego wpisanego adresu musisz odczytać login tego konkretnego użytkownika:
  1. $email = mysql_real_escape_string($_POST['email']); // oczywiście pole formularza może nazywać się inaczej niż email
  2. $result = mysql_query("SELECT * FROM `{$tabela}` WHERE `email` = '{$email}'");
  3. $row = mysql_fetch_assoc($result);
  4. $login = $row['login'];


Przesyłanie danych za pomocą formularzy to absolutne podstawy, o których traktuje pierwszy lepszy kurs znleziony u wójka Google, bez tego ani rusz.
Zresztą tutaj na forum użytkownicy również zamieszczają odnośniki do różnych kursów. Wystarczy poszukać.
cracker
Sprawdziłem na jednym koncie, podany dobry nick. Sprawdziłem na drugim, przed chwilą założonym - też jest dobrze smile.gif

Może to dzięki tym linijkom kodu, których wcześniej nie podałem:

  1. $wynik = mysql_query("UPDATE $tabela
  2. SET haslo='$haslo' WHERE email='$email' and status=1");
  3.  
  4. $wynik = mysql_query("SELECT * FROM $tabela
  5. WHERE email='$email' and status=1");


PS: I mam prośbę - nie gorączkuj się tak bardzo wink.gif
PS2: Tak, użytkownik na stronie wpisuje swój mail i to właśnie na ten mail przychodzi wiadomość.
mortus
Cytat(cracker @ 1.04.2012, 21:19:45 ) *
Sprawdziłem na jednym koncie, podany dobry nick. Sprawdziłem na drugim, przed chwilą założonym - też jest dobrze smile.gif

Może to dzięki tym linijkom kodu, których wcześniej nie podałem:

  1. $wynik = mysql_query("UPDATE $tabela
  2. SET haslo='$haslo' WHERE email='$email' and status=1");
  3.  
  4. $wynik = mysql_query("SELECT * FROM $tabela
  5. WHERE email='$email' and status=1");


PS: I mam prośbę - nie gorączkuj się tak bardzo wink.gif
PS2: Tak, użytkownik na stronie wpisuje swój mail i to właśnie na ten mail przychodzi wiadomość.

Na pewno to dzięki tym linijkom, nie trzeba ponownie wysyłać zapytania do bazy danych, bo login znajduje się w obiekcie $wynik, wystarczy zatem:
  1. $row = mysql_fetch_assoc($wynik);
  2. $login = $row['login'];

Natomiast tak jak wcześniej pisałem, kod, który podał vonski nie działa i nie będzie działał prawidłowo. Nie gorączkuje się, tylko stwierdzam fakt.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.