Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]proste captcha
Forum PHP.pl > Forum > Przedszkole
michat34
witam znalazlem taki skrypt na tworzenie prostej captchy:

  1. <?php
  2. header("Content-type: image/png");
  3. $string = "abcdefghijklmnopqrstuvwxyz0123456789";
  4. for($i=0;$i<6;$i++){
  5. $pozycja_znaku = rand(0,strlen($string));
  6. $6_znakow .= $string{$pozycja_znaku};
  7. }
  8.  
  9. $obrazek = ImageCreate(60, 20);
  10. //255, 255, 255 - czyli kolor bialy
  11. $kolor_tla = ImageColorAllocate($obrazek, 255, 255, 255);
  12. //0, 0, 0 - czyli kolor czarny
  13. $kolor_tekstu = ImageColorAllocate($obrazek, 0, 0, 0);
  14. ImageString($obrazek, 32, 5, 0, $6_znakow, $kolor_tekstu);
  15. Imagepng($obrazek);
  16.  
  17. $_SESSION['captcha'] = $6_znakow;
  18. ?>


sam w sobie działa. skrypt nazywa sie captcha.php

no i dajmy ze chce go wstawic do rejestracja.php. gdy dam require('captcha.php') to na calej stronei jest tylko obrazek captchy i nic wiecej. wiec jak wstawic ta captche tylko w jakies miejsce a w pozostałej czesci strony byłaby normalna strona?
Spawnm
<img src="captcha.php" />
michat34
fakt, dzieki. teraz mam jednak problem. zeby sprawdzic dzialanie dolaczylem do indexu plik captcha.php a po nim dałem echo $_SESSION['captcha']. kod z obrazku nie zgadza sie z SESSION..

przykladowo:
kod na obrazku: 18die wynik echo $_SESSION['captcha']: s9hn90
potem:
kod na obrazku: r2490 a wynik echo: 18die

czyli o jedno za pozno pokazuje echo.
Spawnm
Po co dołączyłeś ten plik do indexu? To jest zdalny plik tylko do wyświetlania w <img>
W index daj session_start i porównywanie $_SESSION['captcha'] z $_POST.
Spawnm
Dziala poprawnie :-)
Bo najpierw wyswietlasz sesje a potem przeglodarka includuje do img captcha.php ktora ustala nowa wartosc.
Jak dasz forma to bedzie dzialac poprawnie.
michat34
hehe fakt wink.gif dziekuje
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.