Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja class generowanie hasla
klasenton
post 23.01.2014, 12:30:15
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.01.2014

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


Witam, zaczynam dopiero naukę w php. Rozpisuje sobie gotowe skrypt i staram sobie je tłumaczyć (zrozumieć). Mam problem z tym skryptem, który ma za zasadę generowanie hasła i wybierać losowe znaki.

  1. class haslo //nazywamy klasę "haslo"
  2. {
  3.  
  4. private $_haslo; //zmienna prywatna hasło
  5.  
  6.  
  7. function __construct($haslo) //konstruktor przypisuje wartość do właściwości hasło
  8. {
  9. $this->_haslo=$haslo; // Odwołujemy się do pola _haslo
  10. }
  11.  
  12. function pass() //funkcja tworzenia hasła
  13. {
  14. $password = trim($this->_haslo);
  15. if ( !preg_match('/^(?=[a-z0-9_#@%\*-]*?[A-Z])(?=[a-z0-9_#@%\*-]*?[a-z])(?=[a-z0-9_#@%\*-]*?[0-9])([a-z0-9_#@%\*-]{8,24})$/Diu', $password) )
  16. { // funkcja odpowiedzialna aby hasła zostały generowane // automatycznie i wybierano losowo znaki
  17. return false; // hasło nie zostało wygenerowane
  18. }
  19. else
  20. return true; // hasło zostało wygenerowane
  21. }


Proszę sprawdzić czy moje rozumowanie jest prawidłowe.? Zastanawia mnie również $/Diu? jakie ma zadanie w tym kodzie. Wasze 'CENNE' i "poprawki" uwagi przydadzą mi się do pojęcia podstaw.

Ten post edytował klasenton 23.01.2014, 12:31:41
Go to the top of the page
+Quote Post
vonski
post 23.01.2014, 12:52:45
Post #2





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

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


Zaczynasz naukę PHP od programowania obiektowego i wyrażeń regularnych? smile.gif

Funkcja pass() nie generuje hasła. Przede wszystkim zauważ że funkcja zwraca tylo TRUE albo FALSE. Generalnie jej działanie opiera się na funkcji preg_match czyli funkcji sprawdzającej dany ciąg znaków pod kątem występowania pewnego wzorca. Wzorzec określony jest w jej pierwszym argumencie czyli: '/^(?=[a-z0-9_#@%\*-]*?[A-Z])...

Jeśli chcesz wygenerować losowy ciąg znaków, zainteresuj się bardziej takimi funkcjami jak sha1(), time() i rand() - poczytaj co każda z nich robi i zastanów się jak to można odnieść do generowania losowego ciągu znaków.

Cytat
Zastanawia mnie również $/Diu? jakie ma zadanie w tym kodzie.

Serio? Z całego tego ciągu: /^(?=[a-z0-9_#@%\*-]*?[A-Z])(?=[a-z0-9_#@%\*-]*?[a-z])(?=[a-z0-9_#@%\*-]*?[0-9])([a-z0-9_#@%\*-]{8,24})$/Diu - najbardziej Cie zastanawia co znaczy to $/Diu? Szacun smile.gif
Jeżeli faktycznie dopiero zaczynasz PHP to polecałbym jednak zacząć od podstaw. Wyrażenia regularne są ważne, ale raczej nie ma sensu od nich zaczynać "przygody" z PHP, bo szybko się może ona skończyć.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
klasenton
post 23.01.2014, 13:29:03
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.01.2014

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


dzięki;) zmienne i funkcje znam składnie. Czyli w funkcji pass gdy zwraca nam true zostaje nam przypisane hasło z określonego wzorca ,a jeśli false co nam zwróci funkcja?
Go to the top of the page
+Quote Post
vonski
post 23.01.2014, 13:47:16
Post #4





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

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


Nie, nie. Tak jak mówiłem, funkcja pass() sprawdza tylko czy dane hasło pasuje do określonego wzorca i zwraca TRUE jeśli tak, FALSE jeśli nie. Nic poza tym. Nie ma tam nigdzie przypisania hasła. Przypisanie następuje w konstruktorze kilka linijek wyżej.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
Wazniak96
post 23.01.2014, 13:49:40
Post #5





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Funkcja pass zwróci 0 (FALSE) w przypadku gdy hasło nie pasuje do wzorca, lub 1 (TRUE) gdy hasło pasuje do wzorca. I nic więcej Poczytaj o zmiennych logicznych wink.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:39