Autor | Zpráva | ||
---|---|---|---|
kukweb Profil |
chtel bych udelat opis kodu z obrazku do formulare, neco jsem nasel tady:
http://firstpage.profitux.cz/?page=captcha Jen to nejak nefunguje :( Mohl by to nekdo proverit, kde je tam chyba ( obrazku jsem dal prava pro zapis CHMOD 777 ) |
||
bohyn Profil |
#2 · Zasláno: 1. 12. 2008, 08:47:59
„Jen to nejak nefunguje :(“
Tak to mas rozbity Mas na serveru nahrany font? |
||
kukweb Profil |
#3 · Zasláno: 1. 12. 2008, 19:51:50
jj, ten jsem nahral. Tim to nebude
|
||
imploder Profil |
#4 · Zasláno: 1. 12. 2008, 22:10:17
|
||
kukweb Profil |
#5 · Zasláno: 2. 12. 2008, 00:43:48
Neco jsem nasel, ale je potiz v tom, ze to dany obrazek prepisuje :(
Rad bych aby to dany obrazek jen nacetlo a ulozilo do jineho. Pote co by bylo overeni OK, dal by se obrazek smazat unlink("./2.png"); ;) $zdroj ="1.png"; $obrazek=ImageCreateFromPNG($zdroj); // Naètení uloženého obrázku $zme = imagecreatetruecolor(121,50); imagecopyresampled($zme, $obrazek, 0, 0, 0, 0, imagesx($zme), imagesy($zme), imagesx($obrazek), imagesy($obrazek)); $textcolor = imagecolorallocate($zme, 0, 0, 0); imagestring($zme, 5, 6, imagesy($zme)-20, "$komentar", $textcolor); $textcolorr = imagecolorallocate($zme,99, 99, 02); ImagePNG($zme,$zdroj); echo "<img src=".$zdroj." alt=test>"; |
||
igamenir Profil |
#6 · Zasláno: 2. 12. 2008, 06:59:37
ten odkaz co jsi dal mi fungoval dobře, tak nevím, proč hledáš dál. spíš to zkus odladit. Jinak jsem si s tím na základě tvého příspěvku hrál a taky zkoušel a tady je výsledek: http://captcha.igamenir.net/test.php
V souboru test.php includuju captcha.php, které mi vygeneruje kód a zkontroluje pokud již byl v minulé stránce zadaný a výsledek vrátí v $captchaOK což pak porovnávám. Obrázek je volaný opět z captcha.php <?php include "captcha.php"; ?> <html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Test CAPTCHA</title> </head><body> <?php if (isset($captchaOK) and $captchaOK): echo '<h2>Zadáno správně</h2>'; else: if (isset($captchaOK)) echo '<p>Zadáno chybně, zadejte znovu:</p>'; ?> <form action="" method="post"> <b>Kontrolní kód:</b> <img src='captcha.php' alt='Kontrolní kód'> <b>Opište kód:</b> <input type="text" maxlength="5" name="captchaentry" size="10"> <input type="hidden" name="captchacoded" value="<?php echo md5($_SESSION['captcha']); ?>"> <input type="submit" value="Zadej"> </form></body></html> <?php endif; ?> A captcha.php: <?php // site of captcha image & charcount $sizeX = 100; $sizeY = 25; $charcount = 5; // session session_start(); // IF THE IMAGE IS ABOUT TO BE PAINTED if ($_SERVER['SCRIPT_NAME']=='/captcha.php'): // show it as png header("Content-type: image/png"); // create image $output = imagecreate($sizeX, $sizeY); // ranges $bgr_min = 255; $bgr_max = 255; // background color $line_min = 96; $line_max = 255; // line color $linecount = 10; // count of line on background $font_min = 0; $font_max = 128; // font color // background imagerectangle($output, 0, 0, $sizeX, $sizeY, imagecolorallocate($output, rand($bgr_min,$bgr_max), rand($bgr_min,$bgr_max), rand($bgr_min,$bgr_max))); // lines in background for ($i = 0; $i < $linecount; $i++): $start = rand(0,3); $end = rand(0,2); if ($end >= $start) $end = $end+1; if ($start < 2) { $x1 = rand(0, $sizeX); $y1 = ($start == 0?rand(0,10):rand($sizeY-10,$sizeY)); }else{ $Y1 = rand(0, $sizeY); $x1 = ($start == 2?rand(0,10):rand($sizeX-10,$sizeX)); } if ($end < 2) { $x2 = rand(0, $sizeX); $y2 = ($end == 0?rand(0,10):rand($sizeY-10,$sizeY)); }else{ $Y2 = rand(0, $sizeY); $x2 = ($end == 2?rand(0,10):rand($sizeX-10,$sizeX)); } imageline($output, $x1, $y1, $x2, $y2, imagecolorallocate($output, rand($line_min,$line_max), rand($line_min,$line_max), rand($line_min,$line_max))); endfor; $chars = $_SESSION['captcha']; $font = "./AtoZ.ttf"; // FONT FILE for ($i = 0; $i < $charcount; $i++) ImageTTFText($output, rand(14,16), rand(-20,20), $i*18+5, 20, ImageColorAllocate($output, rand($font_min,$font_max), rand($font_min,$font_max), rand($font_min,$font_max)), $font, $chars[$i]); ImageJpeg($output); ImageDestroy($output); else: // including the captcha file if (!empty($_POST['captchaentry'])): $e = md5(strtoupper(strtr($_POST['captchaentry'], '1250', 'IZSO'))); $captchaOK = ($e==$_POST['captchacoded']); endif; $_SESSION['captcha'] = ''; /// generates new code for ($i = 0; $i < $charcount; $i++) $_SESSION['captcha'] .= $chr(rand(ord('A'),ord('Z'))); endif; ?> |
||
kukweb Profil |
#7 · Zasláno: 2. 12. 2008, 19:13:23 · Upravil/a: kukweb
diky perfekt, otestuju.
Fatal error: Function name must be a string in /home/www/captcha.php on line 46 tak to nejak nejde :( asi chbka, ale vse jsem jen okopcil |
||
Časová prodleva: 3 měsíce
|
|||
davef6 Profil |
#8 · Zasláno: 25. 2. 2009, 10:48:00
je to sice už starý, ale zkoušel jsem to a stejná chybka...........poradí někdo?
|
||
Joker Profil |
#9 · Zasláno: 25. 2. 2009, 11:14:55
davef6
Já bych poradil se na opisování kódů z obrázků vykašlat. Podle mě je to na nic, otravuje to návštěvníky a většinu typů CAPTCHA dneska roboti zvládnou přečíst lépe než skutečný člověk. |
||
jokerxyz Profil * |
#10 · Zasláno: 25. 2. 2009, 20:00:23
S tim souhlasim, lepe je zeptat se napriklad ktery den jen a ktery den v tydnu je
|
||
Watchick Profil |
#11 · Zasláno: 27. 2. 2009, 10:41:23
Přesně tak...
nasadil jsem jednoduchou Captchu na svůj web, kdyz se vyrojili spameři, a nic, robůtky to neastavilo... Nakonec jsem to vyřešil, tak, že jsem dal do Captchy příklad, který se musel vyřešit... třeba když se tam dá 12 + 3 tak to není o moc větší problém spočítat, oproti opisování 5ti zdeformovaných písmen... A další varianta, která mi přišla celkem jednoduchá ale účinná (používá jí OpenID) že nechá vypsat 5 znaků, každý jinou barvou, a napíše: vypište Červená písmena z obrázku (jeden znak)... IMHO cituji Jokera "většinu typů CAPTCHA dneska roboti zvládnou přečíst lépe než skutečný člověk", spíše než deformovat písmena a kreslit přes ně čáry, tak použít buďto některoé z řešní http://www.dreamface.net/michal/?face=zajimavost&c=31 (velice se mi osvědčily ty hidden inputy "text","mail",... které robot vyplní,a člověk je nevidí) Watchick |
||
Časová prodleva: 15 let
|
0