Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Najprostrze captcha
Forum PHP.pl > Forum > PHP
Lethys
Mam problem mam skrypt :

  1. Kod:<?php $kod= rand(1, 8723); print $kod; ?><br>
  2. Przepisz kod:<input type="text" name="vkod">
  3.  
  4.  
  5. if ($vkod != $kod) {
  6. print "Podales bledny kod.";
  7. exit;
  8. }


I ciagle mi wyskakuje ze zle podalem kod, co jest nie tak ?
klocu
rand'a przesyłaj też postem bo tak generujesz za każdym razem nowego... więc nie ma szans na sprawdzenie == true
grudziu
zapomniałeś o $vkod=$_POST[vkod]
(albo specjalnie pominąłeś...)

ale faktycznie captcha raczej niezby zaawansowane
Lethys
To jak moge zrobc prosty captcha tego typu ?
Foxx
  1. Kod:<?php $kod= rand(1, 8723); print $kod; ?><br>
  2. Przepisz kod:<input type="text" name="vkod">
  3. <input type="hidden" name="xkod" value="<?=$kod?>">
  4.  
  5. if ($vkod != $xkod) {
  6. print "Podales bledny kod.";
  7. exit;
  8. }
grudziu
przynajmniej żeby był w formie obrazkowej,
czyli np przepisz kod widoczny na rysunku:

<img src="picture.php" />

a plik picture.php w jakiś sposób generuje obrazek z hasła, przesyła z headerem typu image/gif (czy jpeg, png cokolwiek) o kończy się ImageGIF($pic).

Bardziej zaawansowane http://pornel.net/captcha


A ja mam pytanie, jak zrobić żeby nie przechowywał w pamięci obrazka?questionmark.gif


Mamy taki oto zapis w własnie picture.php:

  1. <?php
  2. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  4. header("Cache-Control: no-store, no-cache, must-revalidate");
  5. header("Cache-Control: post-check=0, pre-check=0", false);
  6. header("Pragma: no-cache");
  7. ?>


ale jak sie pomyle np mail bez małpki, wciśnie się wstecz, to niestety obrazek się nie odświeża....
em1X
Cytat(Foxx @ 12.11.2007, 21:57:05 ) *
  1. Kod:<?php $kod= rand(1, 8723); print $kod; ?><br>
  2. Przepisz kod:<input type="text" name="vkod">
  3. <input type="hidden" name="xkod" value="<?=$kod?>">
  4.  
  5. if ($vkod != $xkod) {
  6. print "Podales bledny kod.";
  7. exit;
  8. }


sciana.gif withstupidsmiley.gif sciana.gif withstupidsmiley.gif sciana.gif

trochę to się mija z ideą captcha

Cytat(grudziu @ 12.11.2007, 21:57:44 ) *
ale jak sie pomyle np mail bez małpki, wciśnie się wstecz, to niestety obrazek się nie odświeża....


odnoś się do obrazka w takiej postaci i nie powinno być problemów:
(za każdym razem inna nazwa obrazka dla przeglądarki i wymusi ściągnięcie bez ustawiania poleceń w head)
  1. <img src="picture.php?<? print md5(time()); ?>" alt="captcha!" />
Foxx
Ja tylko poprawiłem skrypt Lethysa. A swoją drogą, nie jest to "najprostsze captcha"? Gdyby jeszcze zamiast rand(1, 8723) było rand(1, 9)." + ".rand(1, 9)." = ?" to już by było moim zdaniem całkiem fajne...
em1X
ale co to za captcha skoro ja ci w minutę stworzę skrypt, który ci to obejdzie sciana.gif sciana.gif sciana.gif

Cytat("Wikipedia")
Dla przesłania danych konieczne jest przepisanie treści z obrazka (zazwyczaj losowo dobranych znaków bądź krótkiego wyrazu). Obrazek ten jest prosty do odczytania przez człowieka, jednakże odczytanie go przez komputer jest, przynajmniej w założeniu, bardzo trudne.
Foxx
Jeżeli chcesz stworzyć bota specjalnie do mojej strony to tak, ale w taki sposób możesz napisać bota na każde zabezpieczenia. Dobra, nie licytujmy się bo jest osobny duży topic o tym, wiem że takie zabezpieczenie to nie jest Fort Knox smile.gif
grudziu
Cytat(em1X @ 12.11.2007, 22:51:29 ) *
odnoś się do obrazka w takiej postaci i nie powinno być problemów:
(za każdym razem inna nazwa obrazka dla przeglądarki i wymusi ściągnięcie bez ustawiania poleceń w head)
  1. <img src="picture.php?<? print md5(time()); ?>" alt="captcha!" />


takie proste i takie skuteczne smile.gif
dzięki wielkie
em1X
Cytat(Foxx @ 12.11.2007, 23:14:49 ) *
Jeżeli chcesz stworzyć bota specjalnie do mojej strony to tak, ale w taki sposób możesz napisać bota na każde zabezpieczenia. Dobra, nie licytujmy się bo jest osobny duży topic o tym, wiem że takie zabezpieczenie to nie jest Fort Knox smile.gif


Jeżeli chcesz robić takie zabezpieczenia to nie rób ich w ogóle, bo i po co ? To tak jakbyś sobie przed domem postawił tabliczkę z napisem "Mam na imię Stefan", a przy drzwiach pytał każdego "Jeżeli nie znasz mojego imienia to nie wejdziesz".
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.