![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem sobie system captcha, oto klasa:
Plik index wygląda tak: oraz plik obrazka:
No i po wyświetleniu pliku index.php generuje mi elegancko obrazek, natomiast $_SESSION['captchaCode'] na początku zwraca notice, że zmienna jest pusta, a po odświeżeniu jest nowo wygenerowany obrazek a $_SESSION zawiera kod poprzedniego, jak to przekazać, nie musi być w sesji, bym miał jednocześnie kod w postaci stringa i obrazek z tym samym kodem... Ten post edytował b4rt3kk 17.07.2012, 00:50:19 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
No tak na prosto, to skoro klasa captcha generuje kod i zapisuje go w sesji, to trzeba ten kod wygenerować zanim spróbujesz z niego skorzystać w jakimkolwiek innym miejscu programu. Nie trzeba generować od razu obrazka, wystarczy wygenerować tylko nowy 'captchaCode' i zapisać go np. w sesji, a klasa przy tworzeniu obrazka mogła by pobrać ten kod (a utworzy nowy, jeśli go jeszcze nie ma). Tylko musisz się upewnić, że za każdym odświeżeniem strony generowany jest nowy kod i nowy obrazek.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sama klasa captcha, nie powinna nic zapisywać w sesji jest to sprzeczne z paradygmatem obiektowości (IMG:style_emoticons/default/smile.gif) , powinna za to mieć metodę np. getCurrentCode, która zwraca ciąg jaki jest dostępny na obrazku, na zewnątrz klasy zapisujesz ten kod do sesji czy gdzie tam sobie chcesz.
Co do twojego problemu przyczyną jest sposób w jaki to robisz zobacz pierwsze wywołanie:
drugie Jaśniej nie potrafię tego napisać (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, mała modyfikacja klasy:
indexu:
i samego obrazka:
pomogły. (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 23:50 |