Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Captcha, j/w
mcfreak
post 15.08.2009, 15:44:51
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.01.2009

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


Siema. Mam taki kod:
index.php
  1. <?php
  2.  
  3.  
  4. if($_POST['done']) {
  5. if ($_POST['captcha'] == $number) {
  6. echo 'wpisales poprawnie captche';
  7. } else {
  8. echo 'nie wpisales poprawnie captchy';
  9. }
  10. }
  11.  
  12. # include('captcha.php');
  13. ?>
  14.  
  15. <img src="captcha.php">
  16. <form method="post" onsubmit=""><input type="text" name="captcha" /><br /> <input name="done" type="submit" value="OK">
  17. </form>


captcha.php
  1. <?
  2. $captcha=imagecreatefromjpeg("bez.jpg");
  3. $color=ImageColorAllocate($captcha,255, 255, 255); //definiuje kolor czcionki
  4. $num = rand(1000,9999);
  5. ImageTTFText($captcha,30,0,6,32,$color,"romeo.ttf", $num); //pokazuje numer wygenerowany
  6.  
  7. Header("Content-type: image/jpeg");
  8. ImageJpeg($captcha,NULL,100);
  9. ImageDestroy($captcha);
  10. ?>


Jak to przerobić na poprawnie działająca captche, bo mimo to zawsze będzie się pokazywać błąd, że źle przepisaliśmy numerek.

Nie chcę innych poradników, jak zrobić captche, bo chcę zrobić swoją, z obrazka, a nie, że PHP za mnie zrobi kwadrat, sam wszystko wypisze etc. :]

Jak by co, wiem, że to łatwo złamać, ale ja to zmienie.

Pozdro.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
sowiq
post 15.08.2009, 15:56:59
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Wszystko robisz ok, ale zmienna $numer jest pamiętana tylko do czasu zakończenia działania skryptu generującego obrazek. Po wygenerowaniu captch'y (czyli po wczytaniu strony przez przeglądarkę) wszystkie zmienne są kasowane z pamięci serwera. Więc przy drugim wywołaniu strony nie może być spełniony warunek
  1. $_POST['captcha'] == $number
, bo $number jest pusta (zrób sobie var_dump($number) i sprawdź).
Rozwiązanie? Zapamiętuj zmienną w sesji.

Ten post edytował sowiq 15.08.2009, 15:57:28
Go to the top of the page
+Quote Post
mcfreak
post 15.08.2009, 16:09:35
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.01.2009

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


dzięki, działa :]
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:04