Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [wolontariat]Przypominanie Hasła.
JacobGames26
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


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 ; )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Cytat
Wiam. Chciałbym propsić kogoś aby zrobił skrypt php opierający się na tym kodzie.

Takie prośby to w dziale "Giełda"
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


(Nie)przenoszę do odpowiedniego działu.
Go to the top of the page
+Quote Post
JacobGames26
post
Post #4





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


Dobra . Może ktoś zrobić przypominanie hasła na owym kodzie podanym wyżej?
Go to the top of the page
+Quote Post
usb2.0
post
Post #5





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

Ostrzeżenie: (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?
Go to the top of the page
+Quote Post
JacobGames26
post
Post #6





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


Chciałem być uprzejmy tak? A nie powiedzieć jak Tusk do ludzi ...
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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ł.
Go to the top of the page
+Quote Post
JacobGames26
post
Post #8





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


No to Dorać mi jak takie coś zrobić. Bo ja sie zabardzo na tym nie znać. A płacić nie bede bo po co? ...
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #9





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
JacobGames26
post
Post #10





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


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ć ?
Go to the top of the page
+Quote Post
pedro84
post
Post #11





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
JacobGames26
post
Post #12





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


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ąć.
Go to the top of the page
+Quote Post
pedro84
post
Post #13





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
JacobGames26
post
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 12.10.2013

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
pedro84
post
Post #15





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
patrysiek2
post
Post #16





Grupa: Zarejestrowani
Postów: 108
Pomógł: 5
Dołączył: 8.12.2011
Skąd: Łomża

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
pedro84
post
Post #17





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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? (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
patrysiek2
post
Post #18





Grupa: Zarejestrowani
Postów: 108
Pomógł: 5
Dołączył: 8.12.2011
Skąd: Łomża

Ostrzeżenie: (0%)
-----


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? (IMG:style_emoticons/default/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ł.
Go to the top of the page
+Quote Post
pedro84
post
Post #19





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/wink.gif)

Przyjdzie nowy, zobaczy taką głupotę i będzie tak robił. Promujmy dobre praktyki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 21:41