http://www.google.com/recaptchaOto rozwiązanie twoich problemów.
Jeżeli chcesz napisać kod który rozwiązuje jakiś problem, upewnij-się że twój kod będzie lepszy niż istniejące rozwiązania.
http://pl.wikipedia.org/wiki/Antywzorzec_projektowyOdkrywanie kwadratowego koła (ang. Reinventing the square wheel) Rozwiązywanie problemu w zły sposób, podczas gdy istnieją skuteczne i sprawdzone rozwiązania. Na przykład tworzenie własnego systemu bazodanowego, zamiast wykorzystania istniejących darmowych rozwiązań, z dużym prawdopodobieństwem lepszych niż sami jesteśmy w stanie stworzyć.
Pisałem własną captche kiedyś, nie jest to robota na tydzień, ani na 2 tygodnie. A teraz i tak uzywam reCaptchy.
taką wlasna biblioteke trzeba debugowac, odpluskwiac, pielegnowac zeby byla uzyteczna, to bez sensu bo to odciaga od wlasciwego tworzenia aplikacji. Orobisz sie przy captchy, zabraknie ci sily na twoj portal. To jak skupic sie na produkcji kluczy bardziej niz na naprawach będąc mechanikiem samochodowym.
jesli chcesz by twoja captcha byla skuteczna, musi:
-generowac obrazki w locie
-litery znieksztalcac beczkowatym (lub innym nielinearnym) znieksztalceniem
-byc przystepna dla niewidomych
-byc w miarę czytelna dla ludzi
-trudna do zlamania przez boty
-poprawne odpowiedzi dla każdego zadania wrzucac do bazy danych a nie do jakiejś smiesznej sesji
do każdego zadania captchy generujesz token i wysyłasz go razem z formularzem na którym jest captcha, do bazy wpisujesz token i prawidlowe rozwiazanie zagadki, na koniec sprawdasz czy dla tego tokena rozwiazanie wpisane przez usera sie pokrywa z rozwiazaniem w bazie i hola. Dorzuc do tego jeszcze timestamp (i sprawdzaj czy ta captcha nie pochodzi z czasu pozniejszego niz np. 20 minut) i moze jakos tam to będzie działało.
proste captche ze statycznych obrazków, lub skladane dynamicznie ale bez zadnych przeksztalcen to kaszka manna dla botów, i taką captcha nie uchronisz strony od botów, a co najwyzej wk...isz ludzi. Weź skrypt re-captchy, sformatuj ją pod swoje potrzeby, mozesz kompletnie zmienic jej wygląd, jak np tu:
Przykladowa recaptcha ze zmienionym wygladem i smiga...
PS. Sesja w PHP to jest akurat jedna z tych niewielu rzeczy, która jest do d...y i trzeba ten mechanizm sobie napisać samemu lub użyć innego gotowego, ale nie tego dostarczanego z PHP. Moze dobry framework załatwi sprawę? Obejrz sobie cakePHP, Kohanę, lub Symfony i wybierz cos dla siebie.