Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie - Czy aby nie za dużo warunków?, Pierwszy tak poważny skrypt - prosze o opinię.
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Napisałem skrypt rejestracji (to było banalne) i zacząłem się bawić ze skryptem do logowania. Niestety, tu już było trochę gorzej ale po paru łądnych godzinach dałem rade. Teraz mam jedno pytanie: Czy aby nie za dużo instrukcji warunkowych?

Funkcja wygląda mniej-więcej tak:

jeśli formularz wypełniony dobrze {
-jeśli login istnieje w bazie{
--jeśli hasło podane w formularzu jest takie samo jak to zakodowane w bazie dla danego loginu{
---jeśli jest już zalogowany{
---}
---jeśli NIE jest zalogowany{
---}
--}
-}

Logowanie opiera się na stworzeniu ciastka z danymi:
1. kod sesji (te składa się między innymi z aktualnego czasu i adresu itp. a to wszystko podwójnie zaszyfrowane odmiennymi metodami)
2. Login pobrany z formularza

Tylko teraz obojętnie co chce zrobić związanego z wymuszeniem logowania, musze podać trzy warunki i to trochę mi sie wydaje nie takie jak powinno.
Gdy użytkownik sie wylogowuje to kod sesji w ciastku ustawia się na 'brak_sesji' a sesja w bazie danych na 1.
Przykład: System komentarzy jest dostepny tylko dla zalogowanych i mam funkcję if/elseif, która sprawdza czy jest zalogowany.

Jeśli użytkownik nie jest zalogowany (Wszystko w instrukcji if):
1. Sprawdzenie czy sesja z ciastka i z bazy są różne
2. Sprawdzenie sesja jest rózna 'brak_sesji'
3. sprawdzenie czy sesja w bazie wynosi 1 (podczas wylogowania w bazie sesja dla danego użytkownika przyjmuje wartość 1 aby zapobiec błędom, gdy ciastko nie będzie zawierało żadnych danych. Bo podczas porównywania ciastka z bazą, tutaj i tutaj będzie pusty wynik więc tak na dobrą sprawę będzie zalogowany - dlatego też tak dużo warunków)

Jeśli użytkownik jest zalogowany(wszystko w instrukcji elseif):
1. Sprawdzenie czy sesja z ciastka i z bazy są takie same
2. Sprawdzenie czy sesja z ciastka nie jest równa 'brak_sesji'


Teraz moje pytanie: Można się czegoś pozbyć, żeby było mniej kodu? Lub co ewentualnie zamienić na co, żeby było prościej i szybciej bez utraty 'jakości(?)' kodu?

Ja wiem, "program nie zrobi tego czego nie przewidzi jego Twórca", dlatego tez tak dużo warunków. testowałem już chyba wszystkie możliwe scenariusze, które mogą wystąpić i podczas logowania i podczas sprawdzania czy jest zalogowany aby wyświetlić formularz dla komentarzy.

Ten post edytował adbacz 10.05.2011, 13:45:33
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 17:39