Правильное решение! У себя давно так сделал.
Например, когда пользователи видят в капче "01a34a" они пишут её в русской раскладке, и соответственно не могут отправить отзыв или письмо.
У меня версия 0.2.0, с 1.5.3 капчи вроде одинаковые.
В файле system/library/captcha.php я сделал так:
код
function __construct() {
$this->code = substr(sha1(mt_rand()), 17, 6);
}
заменил на
function __construct() {
$this->code = substr(crc32(mt_rand()), 1, 4);
}
В таком примере капча будет генериться из цифр. Число 4-х значное.
Можно убрать кружки на заднем фоне (точнее покрасить в белый цвет, чтобы не было их видно)
imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $white);
imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $white);
imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $white);
И ещё вместо генерируемой картинке jpeg сделать в png (jpeg больше весит + видны артефакты сжатия)
нужно код
header('Content-type: image/jpeg');
imagejpeg($image);
заменить на
header('Content-type: image/png');
imagepng($image);