про reCaptcha это жди Романа, а код моей капчи "домино", хотя это могут быть и "фруты овощи" или "животные"
прилагаю:
КОД
class Captcha {
private $tpl;
private $content;
private $selected;
private $keystring;
function __construct() {
$this->tpl = new CTemplate;
$res = CApp::$db->select('_captcha_imgs','id,name,img','', 'RAND()', '6');
$rows = CApp::$db->sql_fetchrowset($res);
$this->selected = rand(0,5);
$this->keystring = $rows[$this->selected]["id"];
$this->tpl->assign("rows",$rows);
$this->tpl->assign("selname",$rows[$this->selected]["name"]);
$this->content = $this->tpl->fetch("captcha-img.tpl");
}
function getContent() {
return $this->content;
}
function getKeyString(){
return $this->keystring;
}
}
Код придется адаптировать под 4.3, так как этот писан под 4.5
Шаблон:
КОД
{literal}
<script>
$(document).ready(function(){
var cur_img=0;
$("img[id^='captcha_img']").click(function(){
var id = this.id.split("_");
if (cur_img != 0) {
$("#captcha_img_"+cur_img).attr("style","border: none;");
}
$(this).attr("style","border: 1px solid #81CDD8");
cur_img = id[2];
$("#check").val(cur_img);
});
});
</script>
{/literal}
<p>
<label>Нажмите на: {$selname}</label>
<div>
{foreach from=$rows item=row}
<img src="uploads/captcha/{$row.img}" id="captcha_img_{$row.id}" />
{/foreach}
</div>
</p>
<p>
<input type="hidden" class="text" name="check" id="check"/>
</p>
Табличка:
КОД
CREATE TABLE as45_captcha_imgs(
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(20) DEFAULT NULL,
img VARCHAR(250) DEFAULT NULL,
INDEX id USING BTREE (id)
)
ENGINE = MYISAM
AUTO_INCREMENT = 29
AVG_ROW_LENGTH = 49
CHARACTER SET utf8
COLLATE utf8_general_ci;
INSERT INTO as45_captcha_imgs VALUES (1, 'пусто-пусто', '00.png');
INSERT INTO as45_captcha_imgs VALUES (2, 'пусто-один', '01.png');
INSERT INTO as45_captcha_imgs VALUES (3, 'пусто-два', '02.png');
INSERT INTO as45_captcha_imgs VALUES (4, 'пусто-три', '03.png');
INSERT INTO as45_captcha_imgs VALUES (5, 'пусто-четыре', '04.png');
INSERT INTO as45_captcha_imgs VALUES (6, 'пусто-пять', '05.png');
INSERT INTO as45_captcha_imgs VALUES (7, 'пусто-шесть', '06.png');
INSERT INTO as45_captcha_imgs VALUES (8, 'один-один', '11.png');
INSERT INTO as45_captcha_imgs VALUES (9, 'один-два', '12.png');
INSERT INTO as45_captcha_imgs VALUES (10, 'один-три', '13.png');
INSERT INTO as45_captcha_imgs VALUES (11, 'один-четыре', '14.png');
INSERT INTO as45_captcha_imgs VALUES (12, 'один-пять', '15.png');
INSERT INTO as45_captcha_imgs VALUES (13, 'один-шесть', '16.png');
INSERT INTO as45_captcha_imgs VALUES (14, 'два-два', '22.png');
INSERT INTO as45_captcha_imgs VALUES (15, 'два-три', '23.png');
INSERT INTO as45_captcha_imgs VALUES (16, 'два-четыре', '24.png');
INSERT INTO as45_captcha_imgs VALUES (17, 'два-пять', '25.png');
INSERT INTO as45_captcha_imgs VALUES (18, 'два-шесть', '26.png');
INSERT INTO as45_captcha_imgs VALUES (19, 'три-три', '33.png');
INSERT INTO as45_captcha_imgs VALUES (20, 'три-четыре', '34.png');
INSERT INTO as45_captcha_imgs VALUES (21, 'три-пять', '35.png');
INSERT INTO as45_captcha_imgs VALUES (22, 'три-шесть', '36.png');
INSERT INTO as45_captcha_imgs VALUES (23, 'четыре-четыре', '44.png');
INSERT INTO as45_captcha_imgs VALUES (24, 'четыре-пять', '45.png');
INSERT INTO as45_captcha_imgs VALUES (25, 'четыре-шесть', '46.png');
INSERT INTO as45_captcha_imgs VALUES (26, 'пять-пять', '55.png');
INSERT INTO as45_captcha_imgs VALUES (27, 'пять-шесть', '56.png');
INSERT INTO as45_captcha_imgs VALUES (28, 'шесть-шесть', '66.png');
Сообщение отредактировал vitalik1972: Jan 4 2011, 19:59