![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Robię obsługę błędów dla formularza. Na początek będą to 3 błędy.
Chciałbym przekazywać (do następnej strony) informację o wszystkich błędach za pomocą tylko jednej liczby. Wymyśliłem to sobie, że wyglądałoby to podobnie to praw w Linuksie. Błąd danego typu powodowałby ustawienie danego bitu na 1. Zatem np. dziesiętna liczba 3 (= 00000011 binarnie) oznaczała by wystąpienie błędów typu 1 i 2. Do tego potrzebuję tylko sposobu na łatwe i szybkie nadawanie i sprawdzanie wartości danego bitu. Jest na to jakaś doba metoda? Ten post edytował 115750 27.08.2008, 12:19:16 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
Może po prostu sesja i czyszczenie jej po wyświetleniu.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 29.07.2007 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Robisz tak: każdy błąd niech ma kod o wartości przybierającej jakąs potęgę liczby 2(poza 0). Np.: zbyt krótkie hasło(np. poniżej 6 znaków) = 2, nieprawidłowe znaki(@, ", ', itd.) = 4, jeszcze jakiś błąd = 8. Potem w trakcie walidacji dodajemy do siebie te kody i przekazujemy do następnej strony. Za pomocą sesji chociażby.
Uznajmy, że podajemy hasło jf@". W trakcie walidacji stwierdzamy, że jest ono zbyt krótkie($zmienna ma wartość teraz 2) i ma złe znaki($zmienna += 4 //=6). Na drugiej stronie używamy koniunkcji bitowej w taki sposób:
Wyświetli dwa pierwsze błędy. Haczyk polega na tym, że moim zdaniem nie warto do takiego czegoś używać operacji bitowych. Ale skoro chcesz;) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Haczyk polega na tym, że moim zdaniem nie warto do takiego czegoś używać operacji bitowych. Ale skoro chcesz;) Dzięki za odpowiedź, właśnie o to mi chodziło. Jednak skoro nie warto używać operacji bitowych, to co jest lepsze? Kod błędu chcę przekazywać metodą GET (w adresie). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[ciach] Haczyk polega na tym, że moim zdaniem nie warto do takiego czegoś używać operacji bitowych. Ale skoro chcesz;) Przykład z flagami bitowymi ma jedna wadę - ilość błędów jakie możesz oznaczyć jest zależna od architektury procesora. Na 32 bitowych oznaczysz w ten sposób ok. 30... nie jest to najlepsze rozwiązanie do takiego problemu. Najlepiej się sprawdza przy przekazywaniu parametrów do funkcji/metod. Dzięki za odpowiedź, właśnie o to mi chodziło. Jednak skoro nie warto używać operacji bitowych, to co jest lepsze? Kod błędu chcę przekazywać metodą GET (w adresie). Najlepiej trzymaj to w sesji. w tablicy z błędami, gdzie klucz to wartość atrybutu name w formularzu. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
TrevorGryffits
Chyba raczej switch" title="Zobacz w manualu PHP" target="_manual |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
TrevorGryffits Chyba raczej switch" title="Zobacz w manualu PHP" target="_manual Według mnie TrevorGryffits dobrze to napisał. Switcha tu raczej nie można zastosować ze względu na zmienność operatora a nie wyniku. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:49 |