Kako ugraditi ovu reCAPTCHA-u?

Zanima me kako mogu i gdje naći ovakvu reCAPTCHA i ugraditi na Bootstrap???

5454

Tražila sam na google ali nisam je pronašla.

Sigurno će se naći neko pa da me pita zašto ne koristim google reCAPTCHA a razlog je što dosta ljudi ne zna da koristi google reCAPTCHA i zbunjuje ih a ponekad i ne radi kako treba.

Kada sam radila google adwords i bila je prodaja nekih knjiga jako malo upita je dolazilo od ljudi koji su bili zainteresovani pa me je klijent zamilio da uklonim google reCAPTCHA sa contact forme gdje je nakon toga bila znatno više upita a nisu bili spam pa sam tada svhvatila da je google reCAPTCHA vrlo komplikovana onima koji imaju malo dodira sa tehnologijama te zbog toga želim ovu reCAPTCHA sa brojevima. Hvala.

Za WP postoji math captcha ili guglaj slično.

Na stranici

<?php date_default_timezone_set('Europe/Zagreb'); $d=date('g'); $s=rand(1,9); $s2=rand(1,2); $pb=$d+$s-$s2; ?> <input type="hidden" name="pb" value="<?php echo $pb ?>"> <font color=red>*</font>Unesi rezultat ÷ <font color=red>*</font>Enter result<br><?php echo $d.' + '.$s.' - '.$s2.' = ' ?> <;input style="background:transparent;color:black; border:1px solid; border-color:black;font-size:10pt; text-align:center;" type="text" name="pbu" size="5" maxlength="2"><br><br> <input style="background:transparent;color:black; border:2px solid; border-color:black;cursor:pointer;font-family: times new roman;" name=botun type="submit" value="Unesi ÷ Enter">&nbsp;&nbsp;&nbsp;

kod unosa

@extract($_POST);
$pb = stripslashes($pb);
$pbu = stripslashes($pbu);
if ($pb!=$pbu){echo'Rezultat je netočan! Pričekajte redirekt.<br>Result is incorrect! Wait redirect.<META HTTP-EQUIV="refresh" content="4;URL=unos.php">';die;}

Primjer http://davor-bergam.iz.hr/unos.php I usput se upiši. Hvala!

Ako kod ispisa želiš sliku umisto teksta kod je

<?php
header("Content-type: image/png");
$ip = getenv("REMOTE_ADDR");
$fl = "tx2im-".$ip.".txt";
$fh = fopen($fl, 'r') or die;
$string = fread($fh, filesize($fl));
fclose($fh);
//$string = "Jeba te magarac!";
 $string=trim($string);
$font  = 5;
$width  = imagefontwidth($font) * strlen($string)+3;
$height = imagefontheight($font)+3;

$image = imagecreatetruecolor ($width,$height);
$white = imagecolorallocate ($image,255,243,168);
$black = imagecolorallocate ($image,0,0,0);
imagefill($image,0,0,$white);

imagestring ($image,$font,1,1,$string,$black);

imagepng ($image);
  imagedestroy($image);
  unlink($fl);
?>

Za ovo $pb iz gornjeg primjera trebaš spremiti u .txt file

Bravo majstore :exclamation: :radioactive:

Hvala! Ja sam umirovljeni sistemski programer i administrator. Programiram već 37 godina.

samo autor zna zašto je ovo ovdje
Čika Davore legendo

1 Like

Hvala Davore, ali ja sam to uradila na sljedeći način; u index.php sam postavila ovo:

<div class="form-group">
    <label for="captcha">Koliko je</label>
     <label class="control-label" id="captchaOperation"></label>
      <input class="col-sm-9" type="text" class="form-control" name="captcha" />
</div>

I koristila sam js ovaj:

function randomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
};
$('#captchaOperation').html([randomNumber(1, 10), '+', randomNumber(1, 10), '='].join(' '));

Još bi trebala uraditi samo validaciju.

Cijenim vaš trud i rad ali koristite nepregledan kod a ja volim clear code.

Ovo je moderno doba gdje trebate razmišljati kako olakšati korisnicima a ne da ih redirektujete pa da čekaju i da se vraćaju te opet unose podatke sve ponovno, zar nije lakše napraviti pomoću js-a da ako naprave grešku odma ispod forme im piše da to polje nije ispravno, nemam ništa loše za vas samo vam želim ukazati na to. Hvala vam.

@Davor_R_Bergam jel se mozda sjecas to je bilo prije cca 7 il 8 godina radio si mi skriptu za lazno slanje mailova za cijenu jedne kutije cigareta :blush: al poslao ja za šteku :grin:
Dobro je drzala ta skripta, dignuo na 1000 posjeta dnevno, al sam je morao zbog zakona maknuti, poceli ljudi zlorabiti :grin:

Dok se ne uradi session values validation sa PHP strane (lično smatram da je ovo sa JS-om više probematično nego što pomaže), odnosno ta logika iz JS-a da se postavi u PHP i provjerava vrijednost poslana u browser view sa vrijednošću koja je u session-u nakon POST request-a, nije loše ni postaviti honeypot polje

<input type="hidden" name="id" value="" />

a u $_POST array-u provjeriti da se nešto nije uhvatilo - botovi se obično eager da popune sve na šta naidju.

Eh kad bi znala kako to uraditi :slight_smile:

Tamo gdje se sakupljaju podaci iz forme. Tj. $post = $_POST provjeriti da li je popunjeno i ovo hidden polje koje ne bi smjelo imati vrijednost.

if ($post) {
    if (!empty($post['id'])) {//or whatever name of hidden field is
        // bot populated the form
    }
}

Moja poenta je da je taj JS code block nije puno funkcionalniji od recimo JS provjere praznog polja.
Ali isto image generator je puno sigurniji od postavljanja brojeva. Ima na github-u nekih repozitorijuma za image recaptcha.

sićan se (-----------------------------------------------------------------------------------------------------)

@biljana

Nikad nemoj generirati nesto za validaciju na fronted strani.

Ono sto ti se moze dogodit kao i za svaku formu, da ti netko moze pozvati url iz forme sa podacima odnekuda, mimo tvoje forme.

Ako nemas generiranje podataka na backend strani i validaciju na backend strani, kao sto ti je @tpojka objasnio, isto je kao i da nemas validaciju.

Validacija na fronted strani je samo za korisnika da mu se prikazu informacije, a pravu validaciju kao sto sam napisao, radis na backend strani.

Ja sam napravila HTML formu koja izgleda ovako https://codepen.io/anon/pen/VVMYoZ

Koristila sam javascript koji se nalazi na js/custom.js putanji i tu dodala js za math captchu:

function randomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
};
$('#captchaOperation').html([randomNumber(1, 10), '+', randomNumber(1, 10), '='].join(' '));

I to je neka osnova za caotchu jer sam odredila min i max prikazivanje brojeva, prvi put se susrećem sa ovim pa me dosta stvari tu sada buni zbog toga sam i pokrenula ovu temu.

Kontala sam ugraditi 1000hz-bootstrap-validator.js

U contact.php sam postavila konfiguraciju varijabli koje se šalju na email kada korisnik popuni formu.

I to je oke ja mislim, ono što bi trebala uraditi je dodati ovu math captch samo ne znam na koji način da uradim to najbolje da se zaštitim od botova i molim za pomoć ako neko može da mi objasni ili pošalje neki tutorijal ili link ili još bolje pošalje code. Hvala puno.

Youtube

php academy math captcha

Prvi link

Ako sam skontala… umjesto ovog mog HTML koda

<div class="col-md-12">
         <div class="form-group">
         <label for="captcha">Koliko je</label>
         <label class="control-label" id="captchaOperation"></label>
         <input class="col-sm-8" type="text" class="form-control" name="captcha" />
         </div>
</div>

Treba da ubacim ovaj kod:


Da li tako treba?
Inače sam pratila ovaj video

Prvo te moram pitati, čime se točno baviš, da li si programer, radiš fronted, wordpress i sl.?

Ako je netko programer i radi web, ovo su početne stvari u rangu od 1.-1000. levela, ovo je zadatak za level 1.

Generiraš u php-u sve što ti treba , recimo staviš u neku funkciju, i pozoveš sve što ti treba kod prikaza forme.

Radim grafički dizajn i do sada sam radila samo sa wordpress cms ali počela sam učiti html i css i pravim neki basic website zbog toga ovo i pitam nisam expert ili programer da poznajem to inače ne bi pitala.

Našla sam ovo https://bootsnipp.com/snippets/6nG25 i to sam koristila taj kod pa me je zbog toga zbunilo ovo gore što mi spominjete u php-u.

Znači ovaj kod na ovom linku gore što sam postavila nema učinkovitosti za botove ako ne koristim php???

Ako nema generiranja podataka i provjere na server side strani, isto je kao da nema ništa.

  1. generiranje podataka na server side strani
  2. provjera na server side strani

npr.
Dođem na tvoju stramnicu, vidim što klik na gumb poziva tj. koji url, to isto se može pozvati od bilo kuda sa post parametrima, ako nemaš sve kako treba , eto ti spama.