Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Przypominanie Hasła.
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
JacobGames26
Wiam. Chciałbym propsić kogoś aby zrobił skrypt php opierający się na tym kodzie.

  1. <?php
  2.  
  3.  
  4. class user {
  5.  
  6. public static $user = array();
  7.  
  8. /**
  9.   * Zwraca tablicę ze wszystkimi danymi o użytkowniku.
  10.   * Indeksy tablicy odpowiadają nazwom pól w bazie danych (login, pass etc...)
  11.   * @param string $login
  12.   * @param string $pass
  13.   * @return array
  14.   */
  15. public function getData ($login, $pass) {
  16. if ($login == '') $login = $_SESSION['login'];
  17. if ($pass == '') $pass = $_SESSION['pass'];
  18.  
  19. self::$user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE login='$login' AND pass='$pass' LIMIT 1;"));
  20. return self::$user;
  21. }
  22.  
  23.  
  24. /**
  25.   * Zwraca tablicę ze wszystkimi danymi o użytkowniku, tak jak powyższa metoda klasy,
  26.   * ale rozpoznaje użytkownika nie po podaniu loginu i hasła tylko po podaniu ID.
  27.   * Używana np. do wyświetlania strony profilu.
  28.   * @param int $id
  29.   * @return array
  30.   */
  31. public function getDataById ($id) {
  32. $user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id' LIMIT 1;"));
  33. return $user;
  34. }
  35.  
  36. /**
  37.   * Jeśli użytkownik jest zalogowany - zwraca true, w przeciwnym wypadku - false
  38.   * @return bool
  39.   */
  40. public function isLogged () {
  41. if (empty($_SESSION['login']) || empty($_SESSION['pass'])) {
  42. return false;
  43. }
  44.  
  45. else {
  46. return true;
  47. }
  48. }
  49.  
  50. /**
  51.   * "Soli" hasło przed jego zahashowaniem funkcją md5()
  52.   * @param string $pass
  53.   * @return string
  54.   */
  55. public function passSalter ($pass) {
  56. $pass = '$@@#$#@$'.$pass.'q2#$3$%##@';
  57. return md5($pass);
  58. }
  59.  
  60. }


Owy skrypt ma przypominać hasło i wysyłać je na emaila podawanego przy rejestracji ; )
Turson
Cytat
Wiam. Chciałbym propsić kogoś aby zrobił skrypt php opierający się na tym kodzie.

Takie prośby to w dziale "Giełda"
pyro
(Nie)przenoszę do odpowiedniego działu.
JacobGames26
Dobra . Może ktoś zrobić przypominanie hasła na owym kodzie podanym wyżej?
usb2.0
Cytat
Owy skrypt ma przypominać hasło i wysyłać je na emaila podawanego przy rejestracji ; )

raczej watpie, swoja droga nawet masz komentarze nie mogles sobie przeczytac?
JacobGames26
Chciałem być uprzejmy tak? A nie powiedzieć jak Tusk do ludzi ...
b4rt3kk
Cytat(JacobGames26 @ 23.10.2013, 16:56:33 ) *
Chciałem być uprzejmy tak? A nie powiedzieć jak Tusk do ludzi ...


Ale kolego, to forum nie jest po to by ktoś coś za Ciebie pisał. Raczej się tu przychodzi o poradę, wskazanie drogi działania, a nie po gotowy kod. Bo za gotowy kod to się zazwyczaj płaci. Nie idziesz przecież do dajmy na to malarza, dając mu farby, żeby Ci chałupę pomalował.
JacobGames26
No to Dorać mi jak takie coś zrobić. Bo ja sie zabardzo na tym nie znać. A płacić nie bede bo po co? ...
b4rt3kk
Cytat(JacobGames26 @ 23.10.2013, 17:02:13 ) *
No to Dorać mi jak takie coś zrobić. Bo ja sie zabardzo na tym nie znać. A płacić nie bede bo po co? ...


No nie wiem, zazwyczaj się płaci, by otrzymać towar z gwarancją jakości, a jej poziom jest uzależniony od ceny (choć nie zawsze). Nie mniej jednak programista też chce zarobić, a nie działać charytatywnie.

Co do porady - do wysyłania maili służy funkcja mail, jak na przypomnienia hasła nada się w sam raz. Jak z niej skorzystać możesz doczytać w manualu.
Ale pierwsza rzecz jaką musisz wykonać to oczywiście zapytanie do bazy, czy podany mail istnieje, następnie wygenerować nowe hasło (stare jest zasolone i zahashowane, nie ma sposobu by je odzyskać) dla konta, do którego przypisany jest mail, zapisać nowe hasło w bazie i przesłać je użytkownikowi. Dobrze by też było zablokować możliwość wysyłania w kółko nowych haseł, gdy poprzednio wysłane nie zostało jeszcze wykorzystane (ktoś może dla żartu lub złośliwie spamować komuś skrzynkę, jeśli zna jego mail). To pokrótce byłoby na tyle.
JacobGames26
Cytat(b4rt3kk @ 23.10.2013, 17:58:31 ) *
No nie wiem, zazwyczaj się płaci, by otrzymać towar z gwarancją jakości, a jej poziom jest uzależniony od ceny (choć nie zawsze). Nie mniej jednak programista też chce zarobić, a nie działać charytatywnie.

Co do porady - do wysyłania maili służy funkcja mail, jak na przypomnienia hasła nada się w sam raz. Jak z niej skorzystać możesz doczytać w manualu.
Ale pierwsza rzecz jaką musisz wykonać to oczywiście zapytanie do bazy, czy podany mail istnieje, następnie wygenerować nowe hasło (stare jest zasolone i zahashowane, nie ma sposobu by je odzyskać) dla konta, do którego przypisany jest mail, zapisać nowe hasło w bazie i przesłać je użytkownikowi. Dobrze by też było zablokować możliwość wysyłania w kółko nowych haseł, gdy poprzednio wysłane nie zostało jeszcze wykorzystane (ktoś może dla żartu lub złośliwie spamować komuś skrzynkę, jeśli zna jego mail). To pokrótce byłoby na tyle.


Fajnie wszystko wytłumaczyłeś. Rozumiem to ale nie zabardzo nam się właśnie na takich typu rzeczach. Login i rejestracje oraz logout mam . Zostało mi tylko przypomnienie hasła. Więc możesz zrobić przykład jak to ma wyglądać ?
pedro84
Cytat(JacobGames26 @ 23.10.2013, 20:58:45 ) *
Fajnie wszystko wytłumaczyłeś. Rozumiem to ale nie zabardzo nam się właśnie na takich typu rzeczach. Login i rejestracje oraz logout mam . Zostało mi tylko przypomnienie hasła. Więc możesz zrobić przykład jak to ma wyglądać ?

Albo masz na tyle oleju w głowie i sobie robisz sam, a jak nie to płacisz. Masz problemy z czytaniem tekstu pisanego? Przykładów, a nawet gotowych skryptów na to pełno w necie, lepsze lub gorsze, ale trzeba chcieć poszukać.

Wymagać możesz od mamy, żeby kanapkę Ci zrobiła, póki masz parę lat. A na forum? Bynajmniej.
JacobGames26
Czyli tak jak sie spodziewałem . Bedzie tekst "poszukaj sobie w google...". Czy coś do tego podobne. Nie po to przychodzę tu na forum aby czytać teksty "poszukaj w necie" . Przychodze na to forum po to aby ktoś mi pomógł doradził a nie czytania "poszukaj w necie" itp. Rozumiem że wymagam ale można dać przykład a ktoś sobie radzi z tym sam jak nie umie to wtedy może chce za to zapłacić . Ja na razie nie chce płacić bo może ktoś bedzie tak miły i mi da przykład który ja sam muszę ogarnąć.
pedro84
Cytat(JacobGames26 @ 23.10.2013, 21:14:57 ) *
Czyli tak jak sie spodziewałem . Bedzie tekst "poszukaj sobie w google...". Czy coś do tego podobne. Nie po to przychodzę tu na forum aby czytać teksty "poszukaj w necie" . Przychodze na to forum po to aby ktoś mi pomógł doradził a nie czytania "poszukaj w necie" itp. Rozumiem że wymagam ale można dać przykład a ktoś sobie radzi z tym sam jak nie umie to wtedy może chce za to zapłacić . Ja na razie nie chce płacić bo może ktoś bedzie tak miły i mi da przykład który ja sam muszę ogarnąć.

Czyli nie rozumiesz tekstu pisanego i ogólnie to jakieś problemy z percepcją masz.

Przykładów jest pierdyliard i jeden w Google. Na pewno szybciej byś coś znalazł, niż łażąc po forum i żebrząc o kod. Wymagania możesz mieć jak komuś płacisz, a na forum społeczność Ci robi wielką łachę, że Ci pomoże. Ja wiem, że gówniarze teraz strasznie roszczeniowi są, ale bez niesmacznej przesady.
JacobGames26
Cytat(pedro84 @ 23.10.2013, 21:17:44 ) *
Czyli nie rozumiesz tekstu pisanego i ogólnie to jakieś problemy z percepcją masz.

Przykładów jest pierdyliard i jeden w Google. Na pewno szybciej byś coś znalazł, niż łażąc po forum i żebrząc o kod. Wymagania możesz mieć jak komuś płacisz, a na forum społeczność Ci robi wielką łachę, że Ci pomoże. Ja wiem, że gówniarze teraz strasznie roszczeniowi są, ale bez niesmacznej przesady.


Rozumiem ten tekst. Ale nie znam się ogolnie na tym zabardzo. Więc prosze was o pomoc...
pedro84
Cytat(JacobGames26 @ 23.10.2013, 21:20:14 ) *
Rozumiem ten tekst. Ale nie znam się ogolnie na tym zabardzo. Więc prosze was o pomoc...

Nie, szukasz frajera. Pomoc != odwalanie roboty za kogoś.

Proszę, tutoriale z przykładami i poradami:
http://net.tutsplus.com/tutorials/php/crea...covery-utility/
http://stackoverflow.com/questions/4763719...ssword-recovery
http://stackoverflow.com/questions/6585649...ssword-function
patrysiek2
Cytat(JacobGames26 @ 23.10.2013, 21:20:14 ) *
Rozumiem ten tekst. Ale nie znam się ogolnie na tym zabardzo. Więc prosze was o pomoc...

Polecam prosty formularz, zapytania mysql + funkcja do wysylania emaili z poziomu php.
1. Weryfikujesz nick/email jaki podal uzytkownik
2. Sprawdzasz czy dany nick/email sa w bazie
3. Pobierasz z tabeli z bazy danych email i haslo

4. Z poziomu php wysylasz do uzytkownika haslo na email
pedro84
Cytat(patrysiek2 @ 24.10.2013, 15:49:05 ) *
Polecam prosty formularz, zapytania mysql + funkcja do wysylania emaili z poziomu php.
1. Weryfikujesz nick/email jaki podal uzytkownik
2. Sprawdzasz czy dany nick/email sa w bazie
3. Pobierasz z tabeli z bazy danych email i haslo
4. Z poziomu php wysylasz do uzytkownika haslo na email

Kompletna bzdura z tym hasłem. Po co chcesz podać użytkownikowi hasz hasła? Po co? Czy mam wnioskować, że przechowujesz w bazie hasła w niezmienionej postaci? ohno-smiley.gif

1. Formularz, user podaje nazwę usera lub email.
2. Sprawdzasz w bazie czy user o takich danych istnieje. Jeśli nie, błąd.
3. Jeśli tak, generujesz unikalny token dla usera (dobrą praktyką jest też dodanie jego czasu ważności - parę h)
4. Wysyłasz taki link userowi.
5. User klika w link. Tam sprawdzasz czy token się zgadza (opcjonalnie, czy jest ważny). Jeśli nie, błąd.
6. Wyświetlasz userowi formularz do zmiany hasła (pola hasło i powtórz hasło, które mogą się zgadzać).
7. User zmienia hasło. Zapisz w bazie danych. Można też wysłać userowi email informujący o zmianie hasła.
patrysiek2
Cytat(pedro84 @ 24.10.2013, 15:56:22 ) *
Kompletna bzdura z tym hasłem. Po co chcesz podać użytkownikowi hasz hasła? Po co? Czy mam wnioskować, że przechowujesz w bazie hasła w niezmienionej postaci? ohno-smiley.gif

1. Formularz, user podaje nazwę usera lub email.
2. Sprawdzasz w bazie czy user o takich danych istnieje. Jeśli nie, błąd.
3. Jeśli tak, generujesz unikalny token dla usera (dobrą praktyką jest też dodanie jego czasu ważności - parę h)
4. Wysyłasz taki link userowi.
5. User klika w link. Tam sprawdzasz czy token się zgadza (opcjonalnie, czy jest ważny). Jeśli nie, błąd.
6. Wyświetlasz userowi formularz do zmiany hasła (pola hasło i powtórz hasło, które mogą się zgadzać).
7. User zmienia hasło. Zapisz w bazie danych. Można też wysłać userowi email informujący o zmianie hasła.

Podałem taki przykład bez "solenia" aby podeslac haslo uzytkownikowi, ale wiem ze to najprostszy i nie najbezpieczniejszy pomysł.
pedro84
Cytat(patrysiek2 @ 24.10.2013, 18:19:15 ) *
Podałem taki przykład bez "solenia" aby podeslac haslo uzytkownikowi, ale wiem ze to najprostszy i nie najbezpieczniejszy pomysł.

Za jakiekolwiek wspominanie o możliwości przechowywania hasła w postaci niezmienionej powinno się karać zjazdem po nieheblowanej desce, gołą dupą, do wanny pełnej spirytusu wink.gif

Przyjdzie nowy, zobaczy taką głupotę i będzie tak robił. Promujmy dobre praktyki.
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.