Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Skrypt]Kontrola użytkownika
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Witam ponownie po krótkiej przerwie...

Przez dwa ostatnie dni próbowałem napisać w pełni funkcjonalną klasę do obsługi logowania, zapamiętywania hasła i kontroli użytkownika, czy mi się udało ocenicie sami. winksmiley.jpg

Kod:
http://wklej.org/hash/a408abdd6a/

Jest to jedna z pierwszych tak rozbudowanych klas którą napisałem, mam nadzieję że nie będziecie zbytnio narzekać. Proszę o ocenę kodu jak i funkcjonalności i o podpowiedzi co powinno być inaczej. winksmiley.jpg

Jeden z sposobów użycia:
  1. <?php
  2. $form=new users();
  3.    $form->conf(array('name'=>'admin','cookie'=>'TRUE'));
  4.    
  5.    $form->check();
  6.    
  7.    if(!$form->ifLogged())
  8.      echo
  9.        $form->form('In').
  10.        'Nick: '.
  11.        $form->inputNick().
  12.        'Hasło: '.
  13.        $form->inputPass().
  14.        'Zapamietaj hasło: '.
  15.        $form->inputRememberPass().
  16.        $form->submitButton('Zaloguj').
  17.        $form->endForm()
  18.      ;
  19.      
  20.    if($form->ifLogged())
  21.      echo
  22.        $form->idSession().
  23.        ' - Jesteś Zalogowany ;) <br />'.
  24.        $form->form('Out').
  25.        $form->submitButton('Wyloguj').
  26.        $form->endForm()
  27.      ;
  28.  
  29.    unset($form);
  30.    
  31.  ?>


Chciał bym również przypomnieć, że dopiero zaczynam zgłębiać tajniki programowania obiektowego, wiem że muszę do pisać do wszystkich funkcji tryb dostępu ale tym zajmę się na koniec. winksmiley.jpg

Pozdrawiam i z góry dziękuję!


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Formy i inputy powinny być osobną klasą. Nie rozumiem też sessionUser. Chcesz sprawdzać co dokładnie? Zalogowanych userów? Wtedy można by sie pokusić za zmianę obslugi sesji w php na własną. smile.gif


--------------------
Go to the top of the page
+Quote Post
bartg
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Ja nie lubię też mieszać widoku z modelem, kontrolerem (jak kto nazywa). Teraz na sztywno masz takie inputy, a co jeśli chciałbym dodać fieldset albo inny input, czy wrzucić to do tabeli?


--------------------
Go to the top of the page
+Quote Post
ShadowD
post
Post #4





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


A więc wczoraj w nocy już zapomniałem napisać, że tak klasa będzie korzystała(dziedziczyła) z klasy form która będzie obsługiwać formularze, dodatkowo dołączę do tego kontroler mysql.

Co do kontroli użytkownika, chodzi głównie o ulepszenie kontroli sesji wbudowanej w php przez sprawdzanie ip (zawsze ktoś może pożyczyć sobie identyfikator sesji od innej osoby), możliwość wylogowania użytkownika za pomocą panelu admina (ktoś się zbytnio rozszalał więc blokuję mu konto i wylogowuję go).

Co do wstawienia tego do jakiegoś diva czy czegoś podobnego - nie ma żadnych problemów klasa jest tak skonstruowana by umożliwiała teo typu zabiegi, każdy input może być wyświetlany niezależnie od innego. A oto przykład:

  1. <?php
  2.    if(!$form->ifLogged())
  3.      echo
  4.        $form->form('In').
  5.        '<table><tr></td><td>Nick: </td><td>'.
  6.        $form->inputNick().
  7.        '</td><td>Hasło: </td><td>'.
  8.        $form->inputPass().
  9.        '</td><td>Zapamietaj hasło: </td><td>'.
  10.        $form->inputRememberPass().
  11.       '</td><td>'.
  12.        $form->submitButton('Zaloguj').
  13.       '</td></tr></table>.'
  14.        $form->endForm()
  15.       ;
  16.  ?>


Oczywiście przykład jest bardzo banalny można go znacznie powiększyć i rozbudować. A z fieldset sprawa wygląda identycznie. Co do zmiany inputa na np bottom to muszę się zastanowić i myślę o dodaniu identycznej funkcji jak i w przypadku input ale z bottomem, i faktycznie muszę dodać możliwość zmiany typu forma ale tym zajmę się po napisaniu klasy która będzie je konstruowała.

Dziękuję za opinię i z chęcią przeczytam nowe... winksmiley.jpg

Ps Sądzicie że powinienem pozbyć się wszystkich formów i pozostawić samą kontrolę a formy tworzyć jako oddzielny obiekt (tym sposobem oddzielę prezentację od kontrolera)questionmark.gif

Ten post edytował ShadowD 11.01.2009, 15:09:40


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Słowa klucze dla Ciebie, to:
- hermetyzacja
- zakres odpowiedzialności obiektu

Odpowiedz sobie na pytanie: Co Ci daje to, że ten kod jest ujęty w klasie.

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
ShadowD
post
Post #6





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Hmmm, zakres odpowiedzialności obiektu - nie rozumiem ale zaraz poszperam coś na ten temat, co do tego co dostałem po napisaniu klasy to:
- Mogę w łatwy sposób stworzyć trzy logowania (nie martwiąc się o nazwy).
- Nie powtarzanie za każdym razem tego samego kodu.
- Łatwa implementacja w przyszłych projektach.

Chyba tyle ;P

Uważasz, że ta klasa jest bezsensowna i nie ma po co z niej korzystać??

Ten post edytował ShadowD 11.01.2009, 21:39:30


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
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 Aktualny czas: 20.08.2025 - 11:31