[FAQ RC] Как изменить длину кода визуального подтверждения

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Astronom
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет
Откуда: /usr/home

[FAQ RC] Как изменить длину кода визуального подтверждения

Сообщение Astronom »

Как изменить длину кода визуального подтверждения, например уменьшить до 4 символов?
Как сделать, чтобы в изображении капчи были только цифры?

Для поиска: размер капчи, изменение размера капчи, captcha, capcha, капча, визуальное подтверждение, состав, убрать буквы
Последний раз редактировалось Поручик 25.04.2010 9:59, всего редактировалось 3 раза.
Причина: редактирование сообщения для целей поиска
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 22 года 2 месяца
Откуда: Бердск
Поблагодарили: 15 раз

Re: CAPTCHA- изменение

Сообщение crash »

posting.php
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: CAPTCHA- изменение

Сообщение Поручик »

Код: Выделить всё

#
# ---- [OPEN] -------
#
includes/ucp/ucp_confirm.php

#
# ---- [FIND] -------
#
      $captcha->execute($row['code'], $row['seed']);

#
# ---- [REPLACE WITH] -------
#
      $captcha->execute(substr($row['code'], 0, 4), $row['seed']);

#
# ---- [OPEN] -------
#
includes/ucp/ucp_register.php

#
# ---- [FIND] -------
#
            'confirm_code'      => array('string', !$config['enable_confirm'], 5, 8),

#
# ---- [REPLACE WITH] -------
#
            'confirm_code'      => array('string', !$config['enable_confirm'], 4, 8),

#
# ---- [FIND] -------
#
                  if (strcasecmp($row['code'], $data['confirm_code']) === 0)

#
# ---- [REPLACE WITH] -------
#
                  if (strcasecmp(substr($row['code'], 0, 4), $data['confirm_code']) === 0)

#
# ---- [OPEN] -------
#
posting.php

#
# ---- [FIND] -------
#
      if (empty($confirm_row['code']) || strcasecmp($confirm_row['code'], $confirm_code) !== 0)

#
# ---- [REPLACE WITH] -------
#
      if (empty($confirm_row['code']) || strcasecmp(substr($confirm_row['code'], 0, 4), $confirm_code) !== 0)
Добавлено спустя 4 минуты 34 секунды:
Как-то я неудачно тему почистил. :shock:
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Astronom
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет
Откуда: /usr/home

Re: CAPTCHA- изменение

Сообщение Astronom »

Руки из задницы вынул, все получилось. Тепер еще один вопрос: как ограничить символы капчи только цифрами? Возможно ли такое и куда копать? Буквы уж очень нервируют хозяина форума.
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: CAPTCHA- изменение

Сообщение Поручик »

Да, знает, знает. Сказал бы сразу, я б тебе сделал. А сейчас некогда.
Короче, вот тебе инфа к размышлению

Код: Выделить всё

				$code = gen_rand_string(mt_rand(5, 8));
Эта строка присутствует в posting.php и includes/ucp/ucp_register.php. Её надо заменить на что вроде этого

Код: Выделить всё

				$code = gen_rand_string_num(mt_rand(4, 8));

Код: Выделить всё

sub gen_rand_string_num{
	my $len=shift || 5;
	srand(time ^ $$);
	my @chars=('0'..'9');
	my $pwd=join('',@chars[map {rand @chars }(1..$len)]);
	return $pwd;
}
Это на перле, выдрал из своего старого проекта. Сможешь портировать на php, твоё счастье, нет, жди.
Правила конференции, п. 3.5
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 9 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Как сделать, чтобы в изображении капчи были только цифры?

Сообщение nissin »

Можно просто переписать функцию gen_rand_string в файле includes/functions.php
Найти:

Код: Выделить всё

function gen_rand_string($num_chars = 8)
{
	$rand_str = unique_id();
	$rand_str = str_replace('0', 'Z', strtoupper(base_convert($rand_str, 16, 35)));

	return substr($rand_str, 0, $num_chars);
}
Заменить на:

Код: Выделить всё

function gen_rand_string($num_chars = 8)
{
	$chars = '123456789';
	$divisor = strlen($chars);
	srand((double)microtime()*1000000);
	$i = 0;
	$pass = '';

	while ($i < $num_chars)
	{
		$num = rand() % $divisor;
		$tmp = substr($chars, $num, 1);
		$pass = $pass . $tmp;
		$i++;
	}

	return $pass;
}
Аватара пользователя
Stipendiat
phpBB 1.4.4
Сообщения: 163
Стаж: 19 лет 8 месяцев

Re: CAPTCHA- изменение

Сообщение Stipendiat »

Поручик писал(а):

Код: Выделить всё

#
# ---- [OPEN] -------#
posting.php

#
# ---- [FIND] -------
#
      if (empty($confirm_row['code']) || strcasecmp($confirm_row['code'], $confirm_code) !== 0)

#
# ---- [REPLACE WITH] -------
#
      if (empty($confirm_row['code']) || strcasecmp(substr($confirm_row['code'], 0, 4), $confirm_code) !== 0)
В версии 3.0.6 нет такой строки и даже похожей на неё.
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: Как изменить длину кода визуального подтверждения

Сообщение Поручик »

Да, нет такой строки в 3.0.7.
Для двига версии 3.0.7 изменение длины кода визуального подтверждения достигается редактированием констант.

includes/constants.php

Код: Выделить всё

// Captcha code length
define('CAPTCHA_MIN_CHARS', 4);
define('CAPTCHA_MAX_CHARS', 7);
Возможно, так и будет в последующих релизах.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Leviafant
phpBB 1.4.4
Сообщения: 106
Стаж: 19 лет 8 месяцев
Откуда: Курск
Поблагодарили: 1 раз

Re: [FAQ RC] Как изменить длину кода визуального подтвержден

Сообщение Leviafant »

Насчет капчи появилась мысль
Если сделать так что бы знаки капчи появлялись при наведении курсора мыши на картинку в виде подсказки
Хотелось бы услышать ваше мнение
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: [FAQ RC] Как изменить длину кода визуального подтвержден

Сообщение MAzZY »

alt="буквы_капчи"?
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Знаки капчи при наведении курсора мыши на картинку

Сообщение Поручик »

Код: Выделить всё

#
#----- [OPEN] --------------------
#
includes/captcha/plugins/captcha_abstract.php

#
#----- [FIND] --------------------
#
				'CONFIRM_IMG'				=> '<img src="' . $link . '" />',

#
#----- [AFTER, ADD] --------------------
#
				'CONFIRM_IMG_ALT'			=> '<img src="' . $link . '" alt= "' . $this->code . '" title= "' . $this->code . '" />',

#
#----- [OPEN] --------------------
#
styles/prosilver/template/captcha_default.html

#
#----- [FIND] --------------------
#
		<dd><img src="{CONFIRM_IMAGE_LINK}" alt="{L_CONFIRM_CODE}" /></dd>

#
#----- [REPLACE WITH] --------------------
#
		<dd>{CONFIRM_IMG_ALT}</dd>
Но делать этого не стоит, иначе боты быстро вас раскусят.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: [FAQ RC] Как изменить длину кода визуального подтвержден

Сообщение MAzZY »

Вот я и говорю - ответ прямо в коде выложить. Дичайший бред

Вернуться в «Поддержка phpBB 3.0.х»