Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- // ГЕНЕРАЦИЯ КАПЧИ
- // названия строчек для сообщения пользователю
- $line_titles = array(
- 0 => 'первой',
- 1 => 'второй',
- 2 => 'третьей',
- 10 => 'предпоследней',
- 11 => 'последней'
- );
- $message_template = '%d символ в %s строке';
- $table = array(
- array('ш','б'),
- array('м','н','к'),
- array('ы','м','б','ш'),
- array('б','ы','н','к','м'),
- array('и','н','ш','м','к'),
- array('н','ш','ы','и','к','б'),
- array('ш','и','н','б','к','ы'),
- array('к','н','ш','м','ы','б','и'),
- array('б','к','ш','м','и','ы','н'),
- array('н','к','и','б','м','ш','ы'),
- array('ш','и','н','к','м','и','ы','б'),
- array('и','м','ш','ы','н','б','м','к')
- );
- // четыре случайные строки
- $lines = array_rand($table, 4);
- // массив сообщений о нужных буквах
- $messages = array();
- // текст, который должен будет ввести пользователь
- $captcha_text = '';
- foreach ($lines as $line) {
- // выбор случайного символа в строке
- $sym = array_rand($table[$line]);
- // название номера строчки
- $line_name = array_key_exists($line, $line_titles) ? $line_titles[$line] : $line + 1;
- $messages[] = sprintf($message_template, $sym + 1, $line_name);
- $captcha_text .= $table[$line][$sym];
- }
- $message = join(', ', $messages);
- $_SESSION['captcha'] = $captcha_text;
- ?>
- <?
- // ПРОВЕРКА КАПЧИ
- $captcha = mb_strtolower(isset($_POST['captcha']) ? $_POST['captcha'] : '');
- if ($captcha != $_SESSION['captcha']) {
- // обработка ошибки
- // наличие $_SESSION['captcha'], кстати, тоже нужно проверять
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement