Тест при регистрации нового пользователя

Проблемы с установкой или работой 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) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Тест при регистрации нового пользователя

Сообщение biro »

Здравствуйте.

Скажите пожалуйста, есть ли какой-либо мод, который позволяет сделать обязательный тест (например на знание Правил Форума) при регистрации. Например, участнику нужно будет ответить на 5-7 вопросов, у каждого вопроса будет по 3 варианта ответа (один из них правильный).

Поиск на вашем форуме выдал мне только одну тему 2004 года в которой был всего один ответ с битой ссылкой.

Заранее спасибо.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Их есть у меня, самопал. Как доберусь до компа - выложу. Как работает, можешь посмотреть http://www.aquaforum.lv/ucp.php?mode=register
За несколько лет боты не пробивались.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Sheer писал(а):Как работает, можешь посмотреть
Вы про эту капчу?
dfdkjf.png
или у вас дальше после регистрации идет тест?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Ну да. Пять вопросов - пять ответов. Нужно выбрать один вопрос из предлагаемого списка и найти на него правильный ответ из другого списка. Все.
Я в свое время поставил мод Connection Log и прикрутил к нему регистрацию, неудачные попытки записываются в лог - смотрю на него и умиляюсь, как боты бьются над этими тупыми вопросами. :D
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

О! хорошо, тогда как доберетесь до дома, выложите пожалуйста. Думаю, ваша работа будет полезна не только мне одному.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Файлы для редактирования:
  • includes/functions.php
    ucp/ucp_register.php
    styles/ваш_стиль/template/ucp_register.html
    language/ru/common.php
Файл includes/functions.php

Найти

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

  ? > 
Перед этим вставить

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

function question_select($default = '')
{
    global $db;

$quest_options = '

    <option value="-1">Вопрос</option>
    <option value="-1">------------------</option>
    <option value="1">Вопрос №1</option>
    <option value="2">Вопрос №2</option>
    <option value="3">Вопрос №3</option>
    <option value="4">Вопрос №4</option>
    <option value="5">Вопрос №5</option>
    </select>';
    return $quest_options;
}

function answer_select($default = '')
{
    global $db;

    $answ_options = '
    <option value="-1">Ответ</option>
    <option value="-1">------------------</option>
    <option value="4">Ответ на вопрос №4</option>
    <option value="3">Ответ на вопрос №3</option>
    <option value="1">Ответ на вопрос №1</option>
    <option value="5">Ответ на вопрос №5</option>
    <option value="2">Ответ на вопрос №2</option></select>';
    return $answ_options;
} 
Файл ucp/ucp_register.php

Найти

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

'tz'                => request_var('tz', (float) $timezone), 
После вставить

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

// Anti bot
    'quest'    => request_var('quest', ''),
    'answ'    => request_var('answ', ''),
// Anti bot   
Найти

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

        // Check and initialize some variables if needed
        if ($submit)
        {
            $error = validate_data($data, array(
                'username'            => array( 
Перед этим вставить

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

// Anti bot
        $answ    = request_var('answ', '');
// Anti bot          
Найти

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

'tz'                => array('num', false, -14, 14), 
После вставить

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

// Anti bot
                'quest'                  => array('string', !$answ),
// Anti bot          
Найти

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

                if ($data['email'] != $data['email_confirm'])
                {
                    $error[] = $user->lang['NEW_EMAIL_ERROR'];
                } 
После вставить

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

                // Anti bot
                if ($data['quest'] == -1)
                {
                    $error[] = $user->lang['AB_NO_QUESTION'];
                }
                else if ($answ == -1)
                {
                    $error[] = $user->lang['AB_NO_ANSWER'];
                }
                else if ($data['quest'] != $answ)
                {
                    $error[] = $user->lang['AB_QUESTION_ERROR'];
                }
                // Anti bot          
Найти

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

'S_UCP_ACTION'        => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'), 
После вставить

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

// Anti bot
            'QUESTION'    => question_select($data['quest']),
            'ANSWER'    => answer_select($data['answ']),
            'L_AB_QUESTION_EXPLAIN' => $user->lang['AB_QUESTION_EXPLAIN'],
            'L_AB_ANSWER_EXPLAIN' => $user->lang['AB_ANSWER_EXPLAIN'],
            'L_AB_EXPLAIN' => $user->lang['AB_EXPLAIN'],
// Anti bot          
Файл language/ru/common.php
Найти

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

    'ACCOUNT_ALREADY_ACTIVATED'        => 'Ваша учётная запись уже была активирована.', 
После вставить

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

    'AB_QUESTION_EXPLAIN'        => 'Вопрос',
    'AB_ANSWER_EXPLAIN'        => 'Ваш ответ',
    'AB_EXPLAIN'            => 'Для того, чтобы убедиться что вы не спам-бот, ответьте на один из вопросов',
    'AB_QUESTION_ERROR'        => 'Вы неправильно ответили на вопрос. Попробуйте еще раз.',
    'AB_NO_ANSWER'            => 'Вы не выбрали ответ',
    'AB_NO_QUESTION'            => 'Вы не выбрали вопрос', 
Файл ucp_register.html (для стилей на основе subsilver2)
Найти

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

    <td class="row2"><select name="tz">{S_TZ_OPTIONS}</select></td>
</tr>
После вставить

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

<tr>
  <th colspan="2" valign="middle">{L_AB_EXPLAIN}</td>
  </tr>
<tr>
  <td class="row1"><span class="gensmall"><strong>{L_AB_QUESTION_EXPLAIN}</strong></span></td>
  <td class="row2"><select name="quest">{QUESTION}</select> 
  * </td>
</tr>
<tr>
  <td class="row1"><span class="gensmall"><strong>{L_AB_ANSWER_EXPLAIN}</strong></span></td>
  <td class="row2"><select name="answ">{ANSWER}</select> 
  * </td>
</tr>
для prosilver

Найти

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

        <dd><select name="tz" id="tz" class="autowidth">{S_TZ_OPTIONS}</select></dd>
    </dl>
После вставить

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

<dl><dd><strong>{L_AB_EXPLAIN}</strong><dd></dl>
<dl>
  <dt class="row1"><span class="gensmall"><strong>{L_AB_QUESTION_EXPLAIN}</strong></span></dt>
  <dd class="row2"><select name="quest">{QUESTION}</select>  * </dd>
</dl>
<dl>
  <dt class="row1"><span class="gensmall"><strong>{L_AB_ANSWER_EXPLAIN}</strong></span></dt>
  <dd class="row2"><select name="answ">{ANSWER}</select>  * </dd>
</dl> 
Вроде так...
Последний раз редактировалось Sheer 01.02.2011 17:43, всего редактировалось 2 раза.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Я сделал, спасибо, но к сожалению это не совсем то, что мне нужно. У вас в списке выбираются 5 вопросов и 5 ответов, а мне нужно что-то типа анкеты, где уже присутствуют 5 вопросов и на каждый из них нужно выбрать по 5 вариантов ответов. Если проводить аналогию, то это похоже на вот такую регистрацию http://www.gamedev.ru/users/?regist

вот так:
idofhdefe8.png
djfkbsiufysiu.png
Как это можно сделать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Ничего нет невозможного ;)
Так сгодится? Три (можно больше) случайные картинки из четырех (можно из большего количества - мне было лень рисовать) - четыре ответа на выбор. Необходимо определить все три фигуры.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Sheer 20.01.2011 20:53, всего редактировалось 1 раз.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Да, возможно это подойдет, конечно, если расположить это вертикально и заменить картинки на текст или на самой картинке написать вопросы. Просто я хочу сделать тест на знание правил форума.

Так как это делается?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

В общем так... Сразу оговорюсь, что это просто рабочая схема, к форме регистрации не прикручена - просто тест. Но при желании можно приделать тем или иным образом.

TO DO

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

CREATE TABLE  `phpbb_quest` (
 `id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
 `field_0` TINYINT NOT NULL ,
 `field_1` TINYINT NOT NULL ,
 `field_2` TINYINT NOT NULL ,
 `session_id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
PRIMARY KEY (  `id` )
);
Тут подразумевается, что у вас префикс phpBB_

Файл includes/constants.php

Найти

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

// Table names   
После вставить

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

define('QUEST_TABLE',                $table_prefix . 'quest'); 
Создать файл следующего содержания и записать его в корень конференции

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

<?php
/**
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$user->setup();

$session_id = ($user->data['session_id']);

$ar = array('pic_1', 'pic_2', 'pic_3','pic_4');
$answ = array('sqware', 'oval', 'treangl','round');
$form_name = array('answ1', 'answ2', 'answ3');
$submit = (isset($_POST['submit'])) ? true : false;

for ($i = 0; $i < 3; $i++)
{
    $your[$i] = request_var($form_name[$i], '');
    $field = 'field_';
    if ($submit)
    {
        if ($your[$i] == -1)
        {
            $err = 1;
            $sql = 'SELECT * FROM '.QUEST_TABLE.' WHERE session_id = ''.$session_id.''';
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);
            if ($row)
            {
                $id = $row['id'];
            }
            else trigger_error('Ошибка в базе данных');
        }
        else
        {
            $field .= $i;
            $sql = 'SELECT * FROM '.QUEST_TABLE.' WHERE session_id = ''.$session_id.''';
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);
            if ($row)
            {
                $id = $row['id'];
                $pole = $row[$field];
                $ott = $answ[$your[$i]];
                if ($answ[$pole] != $ott)
                {
                    $err = 2;
                }

            }
            else trigger_error('Ошибка в базе данных');
        }
    }
}
if ($submit)
{
    $sql = 'DELETE FROM '.QUEST_TABLE.' WHERE id = '.$id.' AND session_id = ''.$session_id.''';
    $result = $db->sql_query($sql);

    if ($err == 1)
    {
        $error[] = 'Не был выбран один или более ответов';
    }
    else if ($err == 2)
    {
        $error[] = 'Был получен один или более неверных ответов';

    }
    if (!sizeof($error))
    {
        $sql = 'DELETE FROM '.QUEST_TABLE.' WHERE session_id = ''.$session_id.''';
        $result = $db->sql_query($sql);
        $message = 'Поздравляем! Вы прошли этот тест!';
        trigger_error($message);
    }
}
for ($cols = 0; $cols < 3; $cols++)
{
    $a[$cols] = getUnqRand();
    $quest  = $ar[$a[$cols]];
    $answer[$cols] = $answ[$a[$cols]];

    $template->assign_block_vars('cols', array(
        'PIC'        => $quest,
        'ANSW'        => $answer[$cols],
        'FORM_NAME'    => $form_name[$cols],
    ));
}

$sql = 'INSERT INTO '.QUEST_TABLE.' (field_0, field_1, field_2, session_id) VALUES ('.$a[0].', '.$a[1].', '.$a[2].', ''.$session_id.'');';
$db->sql_query($sql);

    $template->assign_vars(array(
        'ANSWER'    => answer_sel(),
        'ERROR'        => (sizeof($error)) ? implode('<br />', $error) : '',
        'COLS'        => $i,
        'MESSAGE'    => 'Определите фигуру',
    ));


page_header('Test');

    $template->set_filenames
        (array
            (
            'body' => 'rnd.html'
            )
    );

page_footer();

function getUnqRand()
{
     static $gens = array();
     $min = 0;
     $max = 3;
     if (count($gens) < $max-$min) {
         while (1) {
             $new = rand(0, 3);
             if (!in_array($new, $gens)) {
                 $gens[] = $new;
                 return $new;
             }
         }
     }
     return false;
}

function answer_sel($default = '')
{
    $answ_options = '
    <option value="-1">Ответ</option>
    <option value="-1">------------------</option>
    <option value="3">окружность</option>
    <option value="2">треугольник</option>
    <option value="0">квадрат</option>
    <option value="1">овал</option>';
    return $answ_options;
}
/*
CREATE TABLE  `phpbb_quest` (
 `id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
 `field_0` TINYINT NOT NULL ,
 `field_1` TINYINT NOT NULL ,
 `field_2` TINYINT NOT NULL ,
 `session_id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
PRIMARY KEY (  `id` )
);
*/
?>
Создать файл rnd.html и записать в styles/ваш_стиль/template

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

<!-- INCLUDE simple_header.html -->

<form method="post" action="{S_MODE_ACTION}">

<table class="tablebg" width="100%" cellspacing="1">
<tr><th colspan = {COLS}>{MESSAGE}</th></tr>
	<!-- IF ERROR -->
		<tr>
			<td class="row3" colspan="{COLS}" align="center"><span class="error"><strong>{ERROR}</strong></span></td>
		</tr>
	<!-- ENDIF -->
<tr class="row1">
	<!-- BEGIN cols -->
	  <td><div align="center"><img src="images/{cols.PIC}.png"><!-- <br>{cols.PIC} --></div></td>
	    <!-- END cols -->
</tr>
<tr class="row1">
	<!-- BEGIN cols -->
	<td>
	<!-- {cols.ANSW}<br> -->
	<select name="{cols.FORM_NAME}">{ANSWER}</select>
	
	</td>
	<!-- END cols -->
</tr>

</table>
<br><input type="submit" name="submit" value="{L_SUBMIT}" class="btnlite" />
 <br />
</form>
<!-- INCLUDE simple_footer.html -->
Картинки (во вложении) записать в папку images

Всю эту схему можно перелопатить на свое усмотрения (вместо картинок вопрос, сделать вертикальную верстку и т.д.. Смогешь?

Добавлено спустя 7 минут 48 секунд:
ЗЫ. Кажись это надо объединить с этим [FAQ] Предотвращение спама в phpbb3
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Спасибо конечно, но не могли бы вы поподробней написать, как прикрутить эту форму к регистрации? Как вместо фигур выводить текстовый вопрос с несколькими вариантами ответа? Как увеличить количество вопросов? Потому что я, честно говоря, ничего не понимаю в php и так и не смог разобраться, что за что отвечает.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Вот

Изображение
Ставим:
Файл language/ru/common.php
Найти

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

'ADMINISTRATOR'                    => 'Администратор', 
Перед этим вставить

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

// Antibot start
    'AB_COMMON_ERROR'                => 'Данные не найдены, регистрация невозможна - обратитесь к %sадминистратору%s',
    'AB_QUESTION_EXPLAIN'            => 'Вопрос',
    'AB_ANSWER_EXPLAIN'                => 'Ваш ответ',
    'AB_EXPLAIN'                    => 'Чтобы убедиться в том, что вы не спам-бот, ответьте на эти вопросы',
    'AB_ANSWER_ERROR'                => 'Был получен один или более неверных ответов. Попробуйте еще раз.',
    'AB_QUESTION_ERROR'                => 'Вы неправильно ответили на вопрос. Попробуйте еще раз.',
    'AB_NO_QUESTION'                => 'Не был выбран один или более вопросов. Попробуйте еще раз.',
// Antibot end                        
Файл includes/constants.php
Найти

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

define('ZEBRA_TABLE',                $table_prefix . 'zebra'); 
После вставить

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

// Antibot start
define('QUEST_TABLE',            $table_prefix . 'antibot_questions');
define('ANSWER_TABLE',            $table_prefix . 'antibot_answer');
// Antibot end                        
Файл includes/functions.php
Найти

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

$redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx"); 
Перед этим вставить

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

// Start antibot
            $i = 0;
            $sql = 'SELECT * FROM '. ANSWER_TABLE .'';
            $result = mysql_query($sql);
            if ($result)
            {
                while( $row = $db->sql_fetchrow($result) )  $i++;
                if($i)
                {
                    $sql = 'TRUNCATE '. ANSWER_TABLE .'';
                    $result = $db->sql_query($sql);
                }
            }
// End Antibot                     
Файл includes/acp/acp_board.php
Найти

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

'enable_confirm'        => array('lang' => 'VISUAL_CONFIRM_REG',    'validate' => 'bool',    'type' => 'radio:yes_no', 'explain' => true), 
После вставить

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

'enable_antibot'        => array('lang' => 'ANTIBOT_REG',            'validate' => 'bool',    'type' => 'radio:yes_no', 'explain' => true),
'max_quest'                => array('lang' => 'QUEST_LIMIT',            'validate' => 'int:0',    'type' => 'text:3:3', 'explain' => true), 
Файл language/ru/acp/board.php
Найти

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

'USERNAME_LENGTH_EXPLAIN'    => 'Минимальное и максимальное количество символов в именах пользователей.', 
После вставить

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

    'ANTIBOT_REG'                => 'Задавать контрольные вопросы при регистрации',
    'ANTIBOT_REG_EXPLAIN'        => 'Для предотвращения автоматических регистраций новые пользователи при регистрации должны будут ответить на контрольные вопросы.',
    'QUEST_LIMIT'                => 'Количество контрольных вопросов на странице регистрации',
    'QUEST_LIMIT_EXPLAIN'        => 'Введите количество контрольных вопросов, отображаемых на станице регистрации (не менее 1 и не более 10).', 
Также изменению подвергаются includes/ucp/ucp_register.php и файлы шаблонов ucp_register.html (взяты из дистрибутива 3.08)
Требуемые изменения не привожу, просто перепишете эти файлы из архива, что во вложении, поверху.
После заливки файлов наберите в браузере

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

http://домен/anti_bot.php
Изображение

Укажите желаемое количество вопросов и впишите их

Изображение

После установки вопросы можно редактировать/добавлять/удалять

Наберите в браузере

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

http://домен/antibot.php
Изображение

Как видно, можно комбинировать текстовые и графические вопросы, просто вместо текста впишите

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

<img src="images/_имя_файла_">
при условии, что файл находится в папке images

Тестируйте...

Во вложении исправленный вариант файла установки antibot_setup.php
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Sheer 07.02.2011 22:40, всего редактировалось 5 раз.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Вроде все правильно поставил, но при регистрации вылазит ошибка Table 'user_testforum.testBB_antibot_answer' doesn't exist [1146]. Может ли быть это вызвано тем, что префикс у таблиц не phpbb, а другой? Если да, то где нужно подправить код?

И еще подскажите, пожалуйста, вот на странице установки мода можно задать вопрос и правильный ответ на него. А как добавить к каждому вопросу неправильные варианты ответа?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Тест при регистрации нового пользователя

Сообщение Sheer »

Моя вина. Дело в том, что я ставил таблицы вручную и потом в файле antibot_setup.php забыл вписать кусок кода создания таблицы antibot_answer. Выложил исправленный вариант (см. мой предыдущий пост).
Короче в файле antibot_setup.php
Найти

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

$sql = "DROP TABLE IF EXISTS ". QUEST_TABLE .""; 
Перед этим вставить

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

$sql = "DROP TABLE IF EXISTS ". ANSWER_TABLE ."";
$result = $db->sql_query($sql);
$sql = "CREATE TABLE ". ANSWER_TABLE ." (id int(4) NOT NULL AUTO_INCREMENT, quest varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, session_id varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (id)) ENGINE=MyISAM CHARSET utf8";
$result = $db->sql_query($sql);
 
biro писал(а): как добавить к каждому вопросу неправильные варианты ответа?
Никак. И это уже слишком. Задай 11 вопросов и при регистрации спрашивай 5 вопросов. На каждый вопрос будет 11 вариантов ответов, среди них 4 будут неверные + 6 заведомо неправильных + "фиг его знает". Этого вполне предостаточно.
Аватара пользователя
biro
phpBB 1.4.2
Сообщения: 67
Стаж: 15 лет 10 месяцев
Откуда: Россия
Благодарил (а): 12 раз
Поблагодарили: 3 раза

Re: Тест при регистрации нового пользователя

Сообщение biro »

Спасибо большое за труды, но вы немного не так меня поняли, я хотел сделать тест именно как на форуме GameDev.ru (ссылка наверху) и я уже подготовил 10 вопросов и на каждый их них у меня уже написано по 3 ответа, но только 1 из этих 3-х ответов для каждого вопроса является правильным. Мне это нужно для того, чтобы участники видели неправильные ответы и знали как делать не надо.

Можно как-то переделать ваш код, чтобы добавить неправильные ответы?

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