Pokaż wyniki od 1 do 8 z 8

Wątek: Token (captcha) problem

  1. #1
    Zbanowany
    Dołączył
    Sep 2009
    Posty
    892

    Domyślnie Token (captcha) problem

    Witam chcę zrobić w moim cmsie kod zabezpieczający captcha. Mam już kod generujący i wyświetlający obrazek:
    Kod php:
    <?  
    //wyswietlanie tokena <img src="token.php" alt="token" style="vertical-align: middle" />  
        
    session_start();
        
    $pool '23456789'//liczby z których bedziemy losować token
        
    $img_width 100//wymiary tokena
        
    $img_height 16;

        
    $str ''//wyzerowanie tokena
        
    for ($i 0$i 5$i++){ // losowanie liczb
            
    $str .= substr($poolmt_rand(0strlen($pool) -1), 1);
        }

        
    $string $str;
        
    $_SESSION['captcha'] = $string//tworzymy sesje z wartością tokena

        
    $im imagecreate($img_width$img_height); //tworzymy obrazek

        
    $bg_color     imagecolorallocate($im,255,255,255); // kolor tła
        
    $font_color   imagecolorallocate($im,0,0,0); // kolor czcionki
        
    $grid_color   imagecolorallocate($im,246,246,246); // kolor lini
        
    $border_color imagecolorallocate ($im246246246); // kolor ramki

        // Tworzenie tokena
           
            
    imagefill($im,1,1,$bg_color);

       
             
    ImageLine($im,90,0,90,30,$grid_color); //1
             
    ImageLine($im,10,0,10,30,$grid_color); //2
             
    ImageLine($im,20,0,20,30,$grid_color); //1
             
    ImageLine($im,30,0,30,30,$grid_color); //1
             
    ImageLine($im,40,0,40,30,$grid_color); //1
             
    ImageLine($im,50,0,50,30,$grid_color); //1
             
    ImageLine($im,60,0,60,30,$grid_color); //1
             
    ImageLine($im,70,0,70,30,$grid_color); //1
             
    ImageLine($im,80,0,80,30,$grid_color); //1
             
             
    ImageLine($im,0,5,100,5,$grid_color); //1
             
    ImageLine($im,0,10,100,10,$grid_color); //1
             
    ImageLine($im,0,15,100,15,$grid_color); //1


        
    $x rand(5$img_width/(7/2)); // pozycja liczb w tokenie

        
    imagerectangle($im00$img_width-1$img_height-1$border_color);

        for(
    $a=0$a 7$a++){

            
    imagestring($im3$x1substr($string$a1), $font_color);
            
    $x += (5*2); #odstęp

        
    }

        
    header("Content-type: image/gif");
        
    imagegif($im);
        
    imagedestroy($im);

    ?>
    Ale mam problem jak zrobić by w rejestracji pojawiło się pole z przepisaniem tego tokena i sprawdzało czy jest on zgodny z podanym na obrazku.

  2. #2
    Zasłużony Awatar Kemsan
    Dołączył
    Oct 2007
    Posty
    805

    Domyślnie

    Wygenerowany kod zapisuj do zmiennej sesyjnej $_SESSION['token'], w formularzu zrób pole <input type="text" name="token"> i później sprawdzaj
    Kod php:
    if($_POST['token'] == $_SESSION['token']){
     
    // Dalszy kod 


  3. #3
    Dark Lord of the Sith Awatar Tyranus
    Dołączył
    Sep 2009
    Posty
    1,209

    Domyślnie

    Lepsze to http://wortal.php.pl/wortal/artykuly..._captcha_w_php niż to :http://funkcje.net/view/2/1587/index.html w komentarzach było
    Fajny token, ale mam mały problem, włożyłem go do formularza jednak czy wpisze się dobrze czy źle, i tak wysyła maila i nie wyskakuje mi żaden komunikat, co mogłem źle zrobić? Z góry dzięki za rady
    autor: początkujący | 420 | 2009-08-18 22:01:53


    musisz porównać to co wpisał użytkownik z tym co jest w $_SESSION['captcha'] jeśli to samo to wysyłasz jeśli nie to dajesz ze zły token
    To to samo co napisał kemsan

  4. #4
    Zbanowany
    Dołączył
    Sep 2009
    Posty
    892

    Domyślnie

    @Kemsan nie rozumie za bardzo...
    Ostatnio edytowane przez maciek012 ; 24-10-2009 o 21:14

  5. #5
    Mistrz Joba Awatar Meares
    Dołączył
    Jan 2009
    Posty
    2,630

    Domyślnie

    Eh... Przy wyświetlaniu obrazka (w pliku z jego generacją) zapisujesz do tablicy sesyjnej kod obrazka, a potem porównujesz go z tym podanym przez użytkownika w formularzu...

  6. #6
    Dark Lord of the Sith Awatar Tyranus
    Dołączył
    Sep 2009
    Posty
    1,209

    Domyślnie

    Robisz ifa == oraz else !=

  7. #7
    Zasłużony Awatar Kemsan
    Dołączył
    Oct 2007
    Posty
    805

    Domyślnie

    Ale mam problem jak zrobić by w rejestracji pojawiło się pole z przepisaniem tego tokena i sprawdzało czy jest on zgodny z podanym na obrazku.
    Wygenerowany kod zapisuj do zmiennej sesyjnej $_SESSION['token'], w formularzu zrób pole <input type="text" name="token"> i później sprawdzaj
    Kod php:
    if($_POST['token'] == $_SESSION['token']){
    // Dalszy kod
    }
    @Kesman nie rozumie za bardzo...
    Czego nie rozumiem? Bo na twoje pytanie odpowiedziałem, następne osoby praktycznie pisały to samo.

    Poza tym jestem Kemsan nie Kesman ...

  8. #8
    Zbanowany
    Dołączył
    Sep 2009
    Posty
    892

    Domyślnie

    Dobrze przepraszam Kemsan nie spojarzałem dobrze...

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. [PORADNIK]Captcha
    Przez Mortis w dziale Poradniki xnova
    Odpowiedzi: 2
    Ostatni post / autor: 16-03-2010, 14:28
  2. Token zabezpieczenie - problem
    Przez Armed79 w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 5
    Ostatni post / autor: 04-03-2010, 12:04
  3. Captcha (rejestracja i logowanie)
    Przez rabid.xx w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 6
    Ostatni post / autor: 18-02-2009, 19:03
  4. captcha
    Przez dumdas w dziale Bezpieczeństwo
    Odpowiedzi: 11
    Ostatni post / autor: 12-12-2008, 13:39
  5. Zabezpieczenie CAPTCHA (czy jakoó tak)
    Przez aso w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 8
    Ostatni post / autor: 02-12-2008, 15:23

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •