Тема: (Обязательно) добавление полей при регистрации

как добавить новые поля не придумал, поступил так: в файле lang\Russian\profile.php поменял перевод полей

'Jabber'                    =>    'Название организации',
'AOL IM'                    =>    'Должность',

далее в файле  register.php скопировал и вставил дважды кусок кода выводящий поле для имени

<?php ($hook = get_hook('rg_register_pre_username')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Username'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_username" value="<?php echo(isset($_POST['req_username']) ? forum_htmlencode($_POST['req_username']) : '') ?>" size="35" maxlength="25" /></span>
                    </div>
                </div>
<?php ($hook = get_hook('rg_register_pre_jabber')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Jabber'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['obyaz dop pole'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_jabber" value="<?php echo(isset($_POST['req_jabber']) ? forum_htmlencode($_POST['req_jabber']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

                <?php ($hook = get_hook('rg_register_pre_aim')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['AOL IM'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['obyaz dop pole'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_aim" value="<?php echo(isset($_POST['req_aim']) ? forum_htmlencode($_POST['req_aim']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

соответственно поменял значения передаваемые в скрипт reg_username на reg_aim и reg_jabber

объявил переменные

                'jabber'                =>    $jabber,
                'aim'                    =>    $aim,

там же где объявленна переменная $username

и добавил строчки вот сюда:
if (empty($errors))
    {
        $username = forum_trim($_POST['req_username']);
        $jabber = forum_trim($_POST['req_jabber']);
        $aim = forum_trim($_POST['req_aim']);
        $email1 = strtolower(forum_trim($_POST['req_email1']));

все по аналогии с полем username делал, поля отображаются, если поля не заполнены то просит их заполнить и регистрацию не выполняет. продолжаем регистрацию, входим и поля оказываются пустыми ,в чем проблема? подскажите почему данные до базы не доходят?

Поделиться

2 (25.01.2010 04:10 отредактировано Bloodlettinger)

Re: (Обязательно) добавление полей при регистрации

в общем долго думал, что же сделал не так. понял что затупил в одном моменте. эти все данные снимаются при заполнении формы и передаются массивом     $user_info = array в скрипт, который уже их заносит в базу. а заносит он не все элементы массива. в общем полез  файлик include\functions.php и там нашел вот что

$query = array(
        'INSERT'    => 'username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, salt, activate_key',
        'INTO'        => 'users',
        'VALUES'    => '\''.$forum_db->escape($user_info['username']).'\', '.$user_info['group_id'].', \''.$forum_db->escape($user_info['password_hash']).'\', \''.$forum_db->escape($user_info['email']).'\', '.$user_info['email_setting'].', '.floatval($user_info['timezone']).', '.$user_info['dst'].', \''.$forum_db->escape($user_info['language']).'\', \''.$forum_db->escape($user_info['style']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['registration_ip']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['salt']).'\', '.$user_info['activate_key'].''
    );

добавил туда свои элементы массива, тока пока в базу попадают почему то "0", как разберусь почему - отпишусь кому интересно

Поделиться

3

Re: (Обязательно) добавление полей при регистрации

Делай это расширением
никто в 1.3 версии в ручную хаки не ставит smile ну может конешно кто-то )

PunBB Extensions | Перед созданием темы => ФАК | Профессиональная разработка сложных сайтов

Расширения распространяются по Creative Commons Attribution-NonCommercial 4.0

Сайт KANekT

Поделиться

4

Re: (Обязательно) добавление полей при регистрации

А еще лучше  перед написанием расширений попользовать anycode.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

5

Re: (Обязательно) добавление полей при регистрации

в написании кода с нуля я не опытен, максимум что могу - чужое поправить и добавить что то по аналогии, уж извиняйте. к тому же модуль такой есть, в теме "расширения" есть его обсуждение, тока беда с ним, под 1.3.4 версией форума не работает, а разработчик на *.org не отвечает уже пол года и никто доработать его мод не хочет. так что возможно и моя тема будет кому нить полезна smile

в общем разобрался я, добилился желаемого результата.
1. взял поля jabber aim icq realname  переименовал их в файле локализации в ФИО(полностью), название организации и должность (вот весь файлик):

<?php

$lang_profile = array(

// Navigation and sections
'Profile redirect'            =>    'Профиль обновлён. Переадресация…',
'Instructions'                =>    'Вы будете перенаправлены обратно на эту страницу',
'Update profile'            =>    'Обновить профиль',

// Administration stuff
'User delete redirect'        =>    'Пользователь удалён. Переадресация…',
'Section admin'                =>    'Администрирование',
'Delete user'                =>    'Удалить пользователя',
'Delete warning'            =>    '<strong>Внимание!</strong> Удаление пользователя и/или его сообщений необратимо.',
'Delete posts info'            =>    '<strong>Внимание!</strong> Если вы подтвердите не удалять сообщения пользователя, то сможете сможете удалить их позже вручную.',
'Delete posts'                =>    'Удалить сообщения',
'Delete posts label'        =>    'Удалить все сообщения и темы, созданные пользователем %s.',
'Group membership redirect'    =>    'Обновлено членство в группах. Переадресация…',
'Moderate forums redirect'    =>    'Обновлены права модератора. Переадресация…',
'Ban redirect'                =>    'Переадресация…',
'Ban user'                    =>    'Блокировка пользователя',
'Ban user info'                =>    'Заблокировать пользователя через консоль администрирования.',
'Delete user info'            =>    'Удалить пользователя и все его сообщения (опционально).',
'User management'            =>    'Управление учётной записью',
'Group membership'            =>    'Членство в группах',
'User group'                =>    'Включить пользователя в группу',
'Moderator assignment'        =>    'Зоны модерирования',
'Cannot delete admin'        =>    'Администраторы не могут быть удалены. Для удаления этого пользователя необходимо переместить его в другую пользовательскую группу.',
'Update groups'                =>    'Обновить пользовательскую группу',
'Update forums'                =>    'Обновить зоны модерирования',

// Avatar stuff
'Avatar welcome'            =>    'Установка аватара для большей индивидуальности.', //FIXME: нужно сказать это по-_русски_
'Avatar welcome user'        =>    'Установка аватара для большей индивидуальности.',
'Avatar deleted redirect'    =>    'Аватар удалён. Переадресация…',
'Avatars disabled'            =>    'Администратор отключил поддержку аватаров.',
'No file'                    =>    'Вы не выбрали файл для загрузки.',
'Too large ini'                =>    'Выбранный файл слишком велик. Сервер отклонил загрузку.',
'Partial upload'            =>    'Выбранный файл был загружен лишь частично. Попробуйте снова.',
'No tmp directory'            =>    'Невозможно сохранить загруженный файл во временном хранилище.',
'Bad type'                    =>    'Типа файла, который вы попытались загрузить запрещён. Разрешены файлы форматов gif, jpeg и png.',
'Too large'                    =>    'Размер файла, который вы попытались загрузить превышает порог в %s байт.',
'Move failed'                =>    'Невозможно сохранить загруженный файл. Обратитесь к администратору форума: %s.',
'Too wide or high'            =>    'Изображение, которое вы попытались загрузить шире и/или выше допустимых %s×%s пикселов.', //FIXME: нужно русское "pixels"
'Unknown failure'            =>    'Неизвестная ошибка. Приносим извинения. Попробуйте снова.',
'Avatar'                    =>    'Аватар',
'Current avatar'            =>    'Текущий аватар',
'No avatar info'            =>    'Вы ещё не загрузили аватар.',
'Avatar info replace'        =>    'Загрузка нового аватара приведёт к удалению старого.',
'Avatar info none'            =>    'Для отображения необходимо загрузить аватар.',
'Avatar info type'            =>    'Разрешены файлы форматов gif, jpeg и png.',
'Avatar info size'            =>    'Максимальный размер изображения — %s×%s пикселов и %s байт (%s КБ).',
'Delete avatar info'        =>    'Удалите аватар чтобы прекратить его отображение.', //FIXME: может его просто отключить? Или это и для профиля?
'Upload avatar file'        =>    'Загружаемый файл аватара', //FIXME: avatar нужно правильно просклонять
'Avatar upload help'        =>    'Выберите файл, затем, для установки, обновите профиль.',
'No upload warn'            =>    '<strong>Важно!</strong> Перед обновлением профиля необходимо выбрать файл.',

// About and Identity sections
'Users profile'                =>    'Профиль пользователя %s',
'Section about'                =>    'Просмотр',
'Profile welcome'            =>    'Ваш профиль',
'Profile welcome user'        =>    'Профиль пользователя %s',
'Identity welcome'            =>    'Изменение личной и контактной информации',
'Identity welcome user'        =>    'Изменение личной и контактной информации',
'View your posts'            =>    'Показать ваши сообщения',
'View your topics'            =>    'Показать ваши темы',
'View user posts'            =>    'Показать сообщения',
'View user topics'            =>    'Показать темы',
'View your subscriptions'    =>    'Показать темы, на которые вы подписаны',
'View user subscriptions'    =>    'Показать темы, на которые подписан пользователь',
'Realname'                    =>    'Фамилия Имя Очество (полностью)',
'Location'                    =>    'Местонахождение',
'From'                        =>    'Откуда',
'Registered'                =>    'Зарегистрирован',
'Website'                    =>    'Сайт',
'IP'                        =>    'IP',
'Note'                        =>    'Примечание',
'Posts'                        =>    'Сообщений',
'Last post'                    =>    'Последнее сообщение',
'Send forum e-mail'            =>    'Отправить сообщение пользователю используя форум',
'Contact info'                =>    'Контактная информация',
'Jabber'                    =>    'Название организации',
'ICQ'                        =>    'ICQ',
'MSN'                        =>    'MSN Messenger',
'AOL IM'                    =>    'Подразделение и должность',
'Forbidden title'            =>    'Статус введённый вами содержит недопустимое слово. Замените это слово.',
'Bad ICQ'                    =>    'Вы ввели некорректный ICQ UIN.',
'Yahoo'                        =>    'Телефон',
'Posts and topics'            =>    'Активность пользователя',
'Private info'                =>    'Персональная информация',
'Current signature'            =>    'Текущая подпись',
'Section identity'            =>    'Персональное',
'Section settings'            =>    'Настройки',
'Section avatar'            =>    'Аватар',
'Section signature'            =>    'Подпись',
'Signature info'            =>    'Ваша подпись будет расположена снизу каждого вашего сообщения. Обычно она содержит любимую фразу или росчерк. Это круто!',
'Personal legend'            =>    'О себе', //FIXME: Не нашёл где это
'Title'                        =>    'Статус',
'Leave blank'                =>    'Для использования стандартных настроек оставьте незаполненным.',
'Edit count'                =>    'Изменить количество сообщений', //счёт
'Admin note'                =>    'Примечание администратора',
'Contact legend'            =>    'Контактная информация', //FIXME: Не нашёл где это

// Settings section
'Local settings'            =>    'Local settings', //FIXME: Не нашёл где это
'Settings welcome'            =>    'Изменение настроек локализации, отображения и e-mail',
'Settings welcome user'        =>    'Изменение настроек локализации, отображения и e-mail',
'Timezone info'                =>    'Нужно для корректного отображения времени на форуме.',
'Time format'                =>  'Формат времени',
'Default'                    =>  'стандартный',
'Date format'                =>  'Формат даты',
'Display settings'            =>    'Настройки отображения',
'Styles'                    =>    'Доступные стили',
'Image display'                =>    'Отображение изображений',
'Show avatars'                =>    'Показывать пользовательские аватары в сообщениях.',
'Show images sigs'            =>    'Показывать изображения в подписях.',
'Show images'                =>    'Показывать изображения в сообщениях.',
'Show sigs'                    =>    'Показывать пользовательские подписи.',
'Show smilies'                =>    'Показывать смайлы как изображения.',
'Signature display'            =>    'Отображение подписей',
'Pagination settings'        =>    'Настройки разбиения страниц',
'Topics per page'            =>    'Количество тем на странице',
'Posts per page'            =>    'Количество сообщений на странице',
'E-mail and sub settings'    =>    'Настройки уведомлений и е-mail адреса',
'Subscription settings'        =>    'Настройки уведомлений',
'Notify full'                =>    'Включать копию текста сообщения в e-mail уведомлениях.',
'Subscribe by default'        =>    'Автоматически подписывать на уведомления о новых сообщениях в теме.',
'UTC-12:00'                    =>    '(UTC-12:00) Линия перемены дат',
'UTC-11:00'                    =>    '(UTC-11:00) Ниуэ, Самоа',
'UTC-10:00'                    =>    '(UTC-10:00) Алеутские, Гавайские о-ва, о-ва Кука',
'UTC-09:30'                    =>    '(UTC-09:30) Маркизские о-ва',
'UTC-09:00'                    =>    '(UTC-09:00) Аляска, о-ва Гамбье',
'UTC-08:00'                    =>    '(UTC-08:00) Тихоокеанское время США',
'UTC-07:00'                    =>    '(UTC-07:00) Горное время США',
'UTC-06:00'                    =>    '(UTC-06:00) Центральное время США',
'UTC-05:00'                    =>    '(UTC-05:00) Восточное время США',
'UTC-04:00'                    =>    '(UTC-04:00) Атлантическое время США',
'UTC-03:30'                    =>    '(UTC-03:30) Ньюфаундленд',
'UTC-03:00'                    =>    '(UTC-03:00) Амазонка, Центральная Гренландия',
'UTC-02:00'                    =>    '(UTC-02:00) Среднеатлантическое время',
'UTC-01:00'                    =>    '(UTC-01:00) Азорские о-ва, Кабо-Верде, Восточная Гренландия',
'UTC'                        =>    '(UTC) Западная Европа, Гринвич',
'UTC+01:00'                    =>    '(UTC+01:00) Центральная Европа, Западная Африка',
'UTC+02:00'                    =>    '(UTC+02:00) Беларусь, Украина, Восточная Европа, Центральная Африка',
'UTC+03:00'                    =>    '(UTC+03:00) Москва, Санкт-Петербург, Волгоград, Восточная Африка',
'UTC+03:30'                    =>    '(UTC+03:30) Иран',
'UTC+04:00'                    =>    '(UTC+04:00) Самара, Закавказье, Катар, Оман, ОАЭ',
'UTC+04:30'                    =>    '(UTC+04:30) Афганистан',
'UTC+05:00'                    =>    '(UTC+05:00) Екатеринбург, Пермь, Пакистан',
'UTC+05:30'                    =>    '(UTC+05:30) Индия, Шри-Ланка',
'UTC+05:45'                    =>    '(UTC+05:45) Непал',
'UTC+06:00'                    =>    '(UTC+06:00) Новосибирск, Омск, Казахстан, Бангладеш, Бутан',
'UTC+06:30'                    =>    '(UTC+06:30) Кокосовые о-ва, Мьянма',
'UTC+07:00'                    =>    '(UTC+07:00) Красноярск, Индокитай',
'UTC+08:00'                    =>    '(UTC+08:00) Иркутск, Китай, Западная Австралия',
'UTC+08:45'                    =>    '(UTC+08:45) Юго-Западная Австралия',
'UTC+09:00'                    =>    '(UTC+09:00) Чита, Корея, Япония',
'UTC+09:30'                    =>    '(UTC+09:30) Центральная Австралия',
'UTC+10:00'                    =>    '(UTC+10:00) Владивосток, Западная Австралия',
'UTC+10:30'                    =>    '(UTC+10:30) Лорд-Хау',
'UTC+11:00'                    =>    '(UTC+11:00) Магадан, Соломоновы о-ва',
'UTC+11:30'                    =>    '(UTC+11:30) о. Норфолк',
'UTC+12:00'                    =>    '(UTC+12:00) Камчатка, Новая Зеландия',
'UTC+12:45'                    =>    '(UTC+12:45) о-ва Чатем',
'UTC+13:00'                    =>    '(UTC+13:00) о-ва Феникс, Тонга',
'UTC+14:00'                    =>    '(UTC+14:00) о-ва Лайн',

// Change Password stuff
'Change pass errors'        =>    '<strong>Внимание!</strong> Следующие проблемы препятствуют обновлению пароля:',
'Pass logout'                =>    'Пользователь уже на форуме. Пожалуйста, выйдите и попытайтесь снова.',
'Pass key bad'                =>    'Указанный активационный ключ не подходит(возможно истекло время его использования). Пожалуйста, запросите новый. Если это не подействует, обратитесь к администратору форума: %s.',
'Pass updated'                =>    'Пароль обновлён. Используйте новый пароль. Переадресация…',
'Change your password'        =>    'Изменить пароль',
'Change user password'        =>    'Изменить пароль',
'Old password'                =>    'Ваш старый пароль',
'Old password help'            =>    'Нужно ввести ваш текущий пароль.',
'New password'                =>    'Ваш новый пароль',
'Confirm new password'        =>    'Подтвердите новый пароль',
'Wrong old password'        =>    'Ваш старый пароль неверен.',
'Pass updated redirect'        =>    'Пароль обновлён. Переадресация…',

// Change E-mail stuff
'Change e-mail errors'        =>    '<strong>Внимание!</strong> Следующие проблемы препятствуют обновлению e-mail адреса:',
'E-mail key bad'            =>    'Указанный активационный ключ не подходит(возможно истекло время его использования). Пожалуйста, запросите новый. Если это не подействует, обратитесь к администратору форума: %s.', //FIXME: неясно что это за ключ.
'E-mail updated'            =>    'Ваш e-mail адрес обновлён.',
'E-mail updated redirect'   =>  'Ваш e-mail адрес обновлён. Перенаправление…',
'Wrong password'            =>    'Введённый пароль неверен.',
'Activate e-mail sent'        =>    'На указанный e-mail адрес отправлено письмо с инструкциями по активации нового e-mail адреса. Если письмо не пришло в течении суток, обратитесь к администратору форума: %s.',
'Change your e-mail'        =>    'Изменить e-mail адрес',
'Change user e-mail'        =>    'Изменить e-mail адрес',
'New e-mail'                =>    'Новый e-mail адрес',

// Signatures
'Sig welcome'                =>    'Создание и изменение подписи',
'Sig welcome user'            =>    'Создание и изменение подписи',
'Signatures disabled'        =>    'Поддержка подписей отключена администратором форума.',
'Sig too long'                =>    'Подписи не могут превышать %1$s символов.',
'Sig too many lines'        =>    'Подпись не может содержать более %s строк.',
'Signature'                    =>    'Подпись',
'Compose signature'            =>    'Новая подпись',
'Sig max size'                =>    'Не более %s символов и %s строк.',

// Registration stuff (some of these also used by profile)
'No new regs'                =>    'Регистрация новых пользователей отключена.',
'Reg cancel redirect'        =>    'Регистрация отменена. Переадресация…',
'Agreement'                    =>    'Подтверждение',
'Agreement label'            =>    'Я согласен с вышеуказанными правилами и желаю зарегистрироваться.',
'Agree'                        =>    'Согласен',
'Registration flood'        =>    'В течении последнего часа с вашего IP адреса уже был зарегистрирован новый пользователь. По прошествии 60 минут вы сможете зарегистрироваться. Это мера безопасности. Приносим извинения за неудобства.',
'Pass too short'            =>    'Пароль должен быть длиннее 4 символов. Выберите другой(рекомендуется использовать как буквы, так и цифры).',
'Pass not match'            =>    'Введённые пароли не совпадают.',
'E-mail not match'            =>    'Введённые e-mail адреса не совпадают.',
'Banned e-mail'                =>    'E-mail адрес, введённый вами, заблокирован на этом форуме. Выберите другой.',
'Dupe e-mail'                =>    'Другой пользователь с таким e-mail адресом уже зарегистрирован. Выберите другой.',
'Reg e-mail'                =>    'Благодарим за регистрацию. На указанный e-mail адрес высланы инструкции по активации вашей учётной записи. Если письмо не пришло в течении суток, обратитесь к администратору форума: %s.',
'Reg complete'                =>    'Регистрация завершена. Переадресация…',
'Register errors'            =>    '<strong>Внимание!</strong> Следующие проблемы препятствуют регистрации:',
'E-mail info'                =>    '<strong>Важно!</strong> На ваш новый e-mail адрес будет отправлено письмо содержащее активационную ссылку. Для активации нового e-mail адреса необходимо пройти по той ссылке. Рекомендуется проверить правильность введённой информации.',
'Reg e-mail info'            =>    '<strong>Важно!</strong> На указанный e-mail адрес будет отправлено письмо содержащее активационную ссылку. Для активации новой учётной записи адреса необходимо пройти по той ссылке. Рекомендуется проверить правильность введённой информации.',
'Register at'                =>    'Регистрация: %s',
'Register intro'            =>    'Регистрация позволяет использовать возможности форума, недоступные гостям. Поля ниже — лишь малая часть того, что вы можете указать в своём профиле. Имеющиеся вопросы относительно форума вы можете задать администратору. Пожалуйста, заполните формы ниже для регистрации.',
'Username'                    =>    'Имя пользователя',
'Username help'                =>    'От 2 до 25 символов.',
'obyaz dop pole'                =>    'до 250 символов',
'Password'                    =>    'Пароль',
'Password help'                =>    'Не менее 4 символов. Регистрозависимый.',
'Confirm password'            =>    'Подтвердите пароль',
'Confirm password help'        =>    'В целях безопасности введите ваш пароль повторно.',
'E-mail'                    =>    'E-mail',
'E-mail help'                =>    'Ваш настоящий e-mail адрес.',
'Confirm e-mail'            =>    'Подтвердите e-mail адрес',
'Confirm e-mail help'        =>    'В целях безопасности введите ваш e-mail адрес повторно.',
'Optional legend'            =>    'Дополнительные настройки',
'Language'                    =>    'Язык',
'Timezone'                    =>    'Часовой пояс',
'Adjust for DST'            =>    'Включить DST',
'DST label'                    =>    'Переход на летнее/зимнее время.',
'E-mail settings'            =>    'Настройки e-mail',
'E-mail setting 1'            =>    'Показывать ваш e-mail адрес другим пользователям.',
'E-mail setting 2'            =>    'Скрыть ваш e-mail адрес, но разрешить отправлять вам сообщения через форум.',
'E-mail setting 3'            =>    'Скрыть ваш e-mail адрес и запретить отправлять вам сообщения через форум.',
'Reg rules head'            =>    'Для регистрации необходимо согласиться с правилами форума ниже.',
'Register'                    =>    'Зарегистрироваться', // Registration button text

// Form validation stuff
'Profile update errors'        =>    '<strong>Внимание!</strong> Следующие проблемы препятствуют обновлению профиля:',
'Username BBCode'            =>    'Имя пользователя не должно содержать тегов для форматирования текста (BBCode), используемых на форуме. Пожалуйста, выберите другое.',
'Username IP'                =>    'Имя пользователя не должно выглядеть как IP адрес(четыре набора цифр, разделённых точками). Пожалуйста, выберите другое.',
'Username censor'            =>    'Выбранное имя пользователя содержит недопустимое слово. Пожалуйста, выберите другое.',
'Username dupe'                =>    'Пользователь с таким именем пользователя существует. Имя пользователя должно отличаться как минимум на один символ (a-z, а-я, или 0-9). Пожалуйста, выберите другое.',
'Username guest'            =>    'Имя пользователя guest зарегистрировано. Пожалуйста, выберите другое.',
'Username reserved chars'    =>    'Имя пользователя не должно содержать символы  \', " и [(]). Пожалуйста, выберите другое.',
'Username too long'            =>    'Имя пользователя не должно быть длиннее 25 символов. Пожалуйста, выберите другое.',
'Username too short'        =>    'Имя пользователя должно содержать как минимум 2 символа. Пожалуйста, выберите другое.',
'Signature quote/code'        =>    'Использование кавычек, HTML-тегов и BB-кодов в подписях запрещено.',
'Invalid e-mail'            =>    'Введённый вами e-mail адрес неверен.',

);

Добавлено спустя 1 минуту 4 секунды:

далее в файле register.php добави обязательные поля взяв за образец поле username, вот весь код файла:

<?php
/**
 * Allows the creation of new user accounts.
 *
 * @copyright (C) 2008-2009 PunBB, partially based on code (C) 2008-2009 FluxBB.org
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package PunBB
 */


if (!defined('FORUM_ROOT'))
    define('FORUM_ROOT', './');
require FORUM_ROOT.'include/common.php';

($hook = get_hook('rg_start')) ? eval($hook) : null;

// If we are logged in, we shouldn't be here
if (!$forum_user['is_guest'])
{
    header('Location: '.forum_link($forum_url['index']));
    exit;
}

// Load the profile.php language file
require FORUM_ROOT.'lang/'.$forum_user['language'].'/profile.php';

if ($forum_config['o_regs_allow'] == '0')
    message($lang_profile['No new regs']);

$errors = array();


// User pressed the cancel button
if (isset($_GET['cancel']))
    redirect(forum_link($forum_url['index']), $lang_profile['Reg cancel redirect']);

// User pressed agree but failed to tick checkbox
else if (isset($_GET['agree']) && !isset($_GET['req_agreement']))
    redirect(forum_link($forum_url['index']), $lang_profile['Reg cancel redirect']);

// Show the rules
else if ($forum_config['o_rules'] == '1' && !isset($_GET['agree']) && !isset($_POST['form_sent']))
{
    // Setup form
    $forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0;

    // Setup breadcrumbs
    $forum_page['crumbs'] = array(
        array($forum_config['o_board_title'], forum_link($forum_url['index'])),
        array($lang_common['Register'], forum_link($forum_url['register'])),
        $lang_common['Rules']
    );

    ($hook = get_hook('rg_rules_pre_header_load')) ? eval($hook) : null;

    define('FORUM_PAGE', 'rules');
    require FORUM_ROOT.'header.php';

    // START SUBST - <!-- forum_main -->
    ob_start();

    ($hook = get_hook('rg_rules_output_start')) ? eval($hook) : null;

    $forum_page['set_count'] = $forum_page['fld_count'] = 0;

?>
    <div class="main-head">
        <h2 class="hn"><span><?php echo sprintf($lang_profile['Register at'], $forum_config['o_board_title']) ?></span></h2>
    </div>
    <div class="main-subhead">
        <h2 class="hn"><span><?php echo $lang_profile['Reg rules head'] ?></span></h2>
    </div>
    <div class="main-content main-frm">
        <div class="ct-box user-box">
            <?php echo $forum_config['o_rules_message'] ?>
        </div>
        <form class="frm-form" method="get" accept-charset="utf-8" action="<?php echo forum_link($forum_url['register']) ?>">
<?php ($hook = get_hook('rg_rules_pre_group')) ? eval($hook) : null; ?>
            <div class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
<?php ($hook = get_hook('rg_rules_pre_agree_checkbox')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="req_agreement" value="1" /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Agreement'] ?></span> <?php echo $lang_profile['Agreement label'] ?></label>
                    </div>
                </div>
<?php ($hook = get_hook('rg_rules_pre_group_end')) ? eval($hook) : null; ?>
            </div>
<?php ($hook = get_hook('rg_rules_group_end')) ? eval($hook) : null; ?>
            <div class="frm-buttons">
                <span class="submit"><input type="submit" name="agree" value="<?php echo $lang_profile['Agree'] ?>" /></span>
                <span class="cancel"><input type="submit" name="cancel" value="<?php echo $lang_common['Cancel'] ?>" /></span>
            </div>
        </form>
    </div>
<?php

    ($hook = get_hook('rg_rules_end')) ? eval($hook) : null;

    $tpl_temp = forum_trim(ob_get_contents());
    $tpl_main = str_replace('<!-- forum_main -->', $tpl_temp, $tpl_main);
    ob_end_clean();
    // END SUBST - <!-- forum_main -->

    require FORUM_ROOT.'footer.php';
}

else if (isset($_POST['form_sent']))
{
    ($hook = get_hook('rg_register_form_submitted')) ? eval($hook) : null;

    // Check that someone from this IP didn't register a user within the last hour (DoS prevention)
    $query = array(
        'SELECT'    => '1',
        'FROM'        => 'users AS u',
        'WHERE'        => 'u.registration_ip=\''.$forum_db->escape(get_remote_address()).'\' AND u.registered>'.(time() - 3600)
    );

    ($hook = get_hook('rg_register_qr_check_register_flood')) ? eval($hook) : null;
    $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
    if ($forum_db->num_rows($result))
        $errors[] = $lang_profile['Registration flood'];

    // Did everything go according to plan so far?
    if (empty($errors))
    {
        $username = forum_trim($_POST['req_username']);
        $realname = forum_trim($_POST['req_realname']);
        $jabber = forum_trim($_POST['req_jabber']);
        $aim = forum_trim($_POST['req_aim']);
        $yahoo = forum_trim($_POST['req_yahoo']);
        $email1 = strtolower(forum_trim($_POST['req_email1']));

        if ($forum_config['o_regs_verify'] == '1')
        {
            $email2 = strtolower(forum_trim($_POST['req_email2']));

            $password1 = random_key(8, true);
            $password2 = $password1;
        }
        else
        {
            $password1 = forum_trim($_POST['req_password1']);
            $password2 = forum_trim($_POST['req_password2']);
        }

        // Validate the username
        $errors = array_merge($errors, validate_username($username));

        // ... and the password
        if (utf8_strlen($password1) < 4)
            $errors[] = $lang_profile['Pass too short'];
        else if ($password1 != $password2)
            $errors[] = $lang_profile['Pass not match'];

        // ... and the e-mail address
        if (!defined('FORUM_EMAIL_FUNCTIONS_LOADED'))
            require FORUM_ROOT.'include/email.php';

        if (!is_valid_email($email1))
            $errors[] = $lang_profile['Invalid e-mail'];
        else if ($forum_config['o_regs_verify'] == '1' && $email1 != $email2)
            $errors[] = $lang_profile['E-mail not match'];

        // Check if it's a banned e-mail address
        $banned_email = is_banned_email($email1);
        if ($banned_email && $forum_config['p_allow_banned_email'] == '0')
            $errors[] = $lang_profile['Banned e-mail'];

        // Check if someone else already has registered with that e-mail address
        $dupe_list = array();

        $query = array(
            'SELECT'    => 'u.username',
            'FROM'        => 'users AS u',
            'WHERE'        => 'u.email=\''.$forum_db->escape($email1).'\''
        );

        ($hook = get_hook('rg_register_qr_check_email_dupe')) ? eval($hook) : null;
        $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
        if ($forum_db->num_rows($result) && empty($errors))
        {
            if ($forum_config['p_allow_dupe_email'] == '0')
                $errors[] = $lang_profile['Dupe e-mail'];

            while ($cur_dupe = $forum_db->fetch_assoc($result))
                $dupe_list[] = $cur_dupe['username'];
        }

        ($hook = get_hook('rg_register_end_validation')) ? eval($hook) : null;

        // Did everything go according to plan so far?
        if (empty($errors))
        {
            // Make sure we got a valid language string
            if (isset($_POST['language']))
            {
                $language = preg_replace('#[\.\\\/]#', '', $_POST['language']);
                if (!file_exists(FORUM_ROOT.'lang/'.$language.'/common.php'))
                    message($lang_common['Bad request']);
            }
            else
                $language = $forum_config['o_default_lang'];

            $initial_group_id = ($forum_config['o_regs_verify'] == '0') ? $forum_config['o_default_user_group'] : FORUM_UNVERIFIED;
            $salt = random_key(12);
            $password_hash = forum_hash($password1, $salt);

            // Insert the new user into the database. We do this now to get the last inserted id for later use.
            $user_info = array(
                'username'                =>    $username,
                'realname'                =>    $realname,
                'jabber'                =>    $jabber,
                'aim'                    =>    $aim,
                'yahoo'                    =>    $yahoo,
                'group_id'                =>    $initial_group_id,
                'salt'                    =>    $salt,
                'password'                =>    $password1,
                'password_hash'            =>    $password_hash,
                'email'                    =>    $email1,
                'email_setting'            =>    $forum_config['o_default_email_setting'],
                'timezone'                =>    $_POST['timezone'],
                'dst'                    =>    isset($_POST['dst']) ? '1' : '0',
                'language'                =>    $language,
                'style'                    =>    $forum_config['o_default_style'],
                'registered'            =>    time(),
                'registration_ip'        =>    get_remote_address(),
                'activate_key'            =>    ($forum_config['o_regs_verify'] == '1') ? '\''.random_key(8, true).'\'' : 'NULL',
                'require_verification'    =>    ($forum_config['o_regs_verify'] == '1'),
                'notify_admins'            =>    ($forum_config['o_regs_report'] == '1')
            );

            ($hook = get_hook('rg_register_pre_add_user')) ? eval($hook) : null;
            add_user($user_info, $new_uid);

            // If we previously found out that the e-mail was banned
            if ($banned_email && $forum_config['o_mailing_list'] != '')
            {
                $mail_subject = 'Alert - Banned e-mail detected';
                $mail_message = 'User \''.$username.'\' registered with banned e-mail address: '.$email1."\n\n".'User profile: '.forum_link($forum_url['user'], $new_uid)."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';

                ($hook = get_hook('rg_register_banned_email')) ? eval($hook) : null;

                forum_mail($forum_config['o_mailing_list'], $mail_subject, $mail_message);
            }

            // If we previously found out that the e-mail was a dupe
            if (!empty($dupe_list) && $forum_config['o_mailing_list'] != '')
            {
                $mail_subject = 'Alert - Duplicate e-mail detected';
                $mail_message = 'User \''.$username.'\' registered with an e-mail address that also belongs to: '.implode(', ', $dupe_list)."\n\n".'User profile: '.forum_link($forum_url['user'], $new_uid)."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';

                ($hook = get_hook('rg_register_dupe_email')) ? eval($hook) : null;

                forum_mail($forum_config['o_mailing_list'], $mail_subject, $mail_message);
            }

            ($hook = get_hook('rg_register_pre_login_redirect')) ? eval($hook) : null;

            // Must the user verify the registration or do we log him/her in right now?
            if ($forum_config['o_regs_verify'] == '1')
                message(sprintf($lang_profile['Reg e-mail'], '<a href="mailto:'.forum_htmlencode($forum_config['o_admin_email']).'">'.forum_htmlencode($forum_config['o_admin_email']).'</a>'));

            $expire = time() + $forum_config['o_timeout_visit'];

            forum_setcookie($cookie_name, base64_encode($new_uid.'|'.$password_hash.'|'.$expire.'|'.sha1($salt.$password_hash.forum_hash($expire, $salt))), $expire);

            redirect(forum_link($forum_url['index']), $lang_profile['Reg complete']);
        }
    }
}

// Setup form
$forum_page['group_count'] = $forum_page['item_count'] = $forum_page['fld_count'] = 0;
$forum_page['form_action'] = forum_link($forum_url['register']).'?action=register';

// Setup form information
$forum_page['frm_info']['intro'] = '<p>'.$lang_profile['Register intro'].'</p>';
if ($forum_config['o_regs_verify'] != '0')
    $forum_page['frm_info']['email'] = '<p class="warn">'.$lang_profile['Reg e-mail info'].'</p>';

// Setup breadcrumbs
$forum_page['crumbs'] = array(
    array($forum_config['o_board_title'], forum_link($forum_url['index'])),
    array(sprintf($lang_profile['Register at'], $forum_config['o_board_title']), forum_link($forum_url['register'])),

);

($hook = get_hook('rg_register_pre_header_load')) ? eval($hook) : null;

define('FORUM_PAGE', 'register');
require FORUM_ROOT.'header.php';

// START SUBST - <!-- forum_main -->
ob_start();

($hook = get_hook('rg_register_output_start')) ? eval($hook) : null;

?>
    <div class="main-head">
        <h2 class="hn"><span><?php echo sprintf($lang_profile['Register at'], $forum_config['o_board_title']) ?></span></h2>
    </div>
    <div class="main-content main-frm">
        <div class="ct-box info-box">
            <?php echo implode("\n\t\t\t", $forum_page['frm_info'])."\n" ?>
        </div>
<?php

    // If there were any errors, show them
    if (!empty($errors))
    {
        $forum_page['errors'] = array();
        foreach ($errors as $cur_error)
            $forum_page['errors'][] = '<li class="warn"><span>'.$cur_error.'</span></li>';

        ($hook = get_hook('rg_pre_register_errors')) ? eval($hook) : null;

?>
        <div class="ct-box error-box">
            <h2 class="warn hn"><span><?php echo $lang_profile['Register errors'] ?></span></h2>
            <ul class="error-list">
                <?php echo implode("\n\t\t\t\t", $forum_page['errors'])."\n" ?>
            </ul>
        </div>
<?php

    }

?>
        <div id="req-msg" class="req-warn ct-box error-box">
            <p class="important"><?php printf($lang_common['Required warn'], '<em>'.$lang_common['Required'].'</em>') ?></p>
        </div>
        <form class="frm-form" id="afocus" method="post" accept-charset="utf-8" action="<?php echo $forum_page['form_action'] ?>">
            <div class="hidden">
                <input type="hidden" name="form_sent" value="1" />
                <input type="hidden" name="csrf_token" value="<?php echo generate_form_token($forum_page['form_action']) ?>" />
            </div>
<?php ($hook = get_hook('rg_register_pre_group')) ? eval($hook) : null; ?>
            <div class="frm-group group<?php echo ++$forum_page['group_count'] ?>">
<?php ($hook = get_hook('rg_register_pre_username')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Username'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_username" value="<?php echo(isset($_POST['req_username']) ? forum_htmlencode($_POST['req_username']) : '') ?>" size="35" maxlength="25" /></span>
                    </div>
                </div>
<!--дополнительные обязательные поля при регистрации -->            

            <?php ($hook = get_hook('rg_register_pre_realname')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Realname'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['obyaz dop pole'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_realname" value="<?php echo(isset($_POST['req_realname']) ? forum_htmlencode($_POST['req_realname']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

            <?php ($hook = get_hook('rg_register_pre_jabber')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Jabber'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['obyaz dop pole'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_jabber" value="<?php echo(isset($_POST['req_jabber']) ? forum_htmlencode($_POST['req_jabber']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

                <?php ($hook = get_hook('rg_register_pre_aim')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['AOL IM'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['obyaz dop pole'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_aim" value="<?php echo(isset($_POST['req_aim']) ? forum_htmlencode($_POST['req_aim']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

                <?php ($hook = get_hook('rg_register_pre_yahoo')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Yahoo'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Username help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_yahoo" value="<?php echo(isset($_POST['req_yahoo']) ? forum_htmlencode($_POST['req_yahoo']) : '') ?>" size="50" maxlength="250" /></span>
                    </div>
                </div>

    
<!--дополнительные обязательные поля при регистрации -->
<?php ($hook = get_hook('rg_register_pre_password')) ? eval($hook) : null; ?>
<?php if ($forum_config['o_regs_verify'] == '0'): ?>                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Password'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Password help'] ?></small></label><br />
                        <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password1" size="35" /></span>
                    </div>
                </div>
<?php ($hook = get_hook('rg_register_pre_confirm_password')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm password'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Confirm password help'] ?></small></label><br />
                        <span class="fld-input"><input type="password" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_password2" size="35" /></span>
                    </div>
                </div>
<?php endif; ($hook = get_hook('rg_register_pre_email')) ? eval($hook) : null; ?>                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['E-mail'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['E-mail help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_email1" value="<?php echo(isset($_POST['req_email1']) ? forum_htmlencode($_POST['req_email1']) : '') ?>" size="35" maxlength="80" /></span>
                    </div>
                </div>
<?php ($hook = get_hook('rg_register_pre_email_confirm')) ? eval($hook) : null; ?>
<?php if ($forum_config['o_regs_verify'] == '1'): ?>                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text required">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Confirm e-mail'] ?> <em><?php echo $lang_common['Required'] ?></em></span> <small><?php echo $lang_profile['Confirm e-mail help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_email2" value="<?php echo(isset($_POST['req_email2']) ? forum_htmlencode($_POST['req_email2']) : '') ?>" size="35" maxlength="80" /></span>
                    </div>
                </div>
                            
<?php endif;

        $languages = array();
        $d = dir(FORUM_ROOT.'lang');
        while (($entry = $d->read()) !== false)
        {
            if ($entry != '.' && $entry != '..' && is_dir(FORUM_ROOT.'lang/'.$entry) && file_exists(FORUM_ROOT.'lang/'.$entry.'/common.php'))
                $languages[] = $entry;
        }
        $d->close();

        ($hook = get_hook('rg_register_pre_language')) ? eval($hook) : null;

        // Only display the language selection box if there's more than one language available
        if (count($languages) > 1)
        {
            natcasesort($languages);

?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box select">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Language'] ?></span></label><br />
                        <span class="fld-input"><select id="fld<?php echo $forum_page['fld_count'] ?>" name="language">
<?php

            $select_lang = isset($_POST['language']) ? $_POST['language'] : $forum_config['o_default_lang'];
            foreach ($languages as $lang)
            {
                if ($select_lang == $lang)
                    echo "\t\t\t\t\t\t".'<option value="'.$lang.'" selected="selected">'.$lang.'</option>'."\n";
                else
                    echo "\t\t\t\t\t\t".'<option value="'.$lang.'">'.$lang.'</option>'."\n";
            }

?>
                        </select></span>
                    </div>
                </div>
<?php

        }

        $select_timezone = isset($_POST['timezone']) ? $_POST['timezone'] : $forum_config['o_default_timezone'];
        $select_dst = isset($_POST['form_sent']) ? isset($_POST['dst']) : $forum_config['o_default_dst'];

        ($hook = get_hook('rg_register_pre_timezone')) ? eval($hook) : null;

?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box select">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Timezone'] ?></span></label><br />
                        <span class="fld-input"><select id="fld<?php echo $forum_page['fld_count'] ?>" name="timezone">
                        <option value="-12"<?php if ($select_timezone == -12) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-12:00'] ?></option>
                        <option value="-11"<?php if ($select_timezone == -11) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-11:00'] ?></option>
                        <option value="-10"<?php if ($select_timezone == -10) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-10:00'] ?></option>
                        <option value="-9.5"<?php if ($select_timezone == -9.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-09:30'] ?></option>
                        <option value="-9"<?php if ($select_timezone == -9) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-09:00'] ?></option>
                        <option value="-8"<?php if ($select_timezone == -8) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-08:00'] ?></option>
                        <option value="-7"<?php if ($select_timezone == -7) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-07:00'] ?></option>
                        <option value="-6"<?php if ($select_timezone == -6) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-06:00'] ?></option>
                        <option value="-5"<?php if ($select_timezone == -5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-05:00'] ?></option>
                        <option value="-4"<?php if ($select_timezone == -4) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-04:00'] ?></option>
                        <option value="-3.5"<?php if ($select_timezone == -3.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-03:30'] ?></option>
                        <option value="-3"<?php if ($select_timezone == -3) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-03:00'] ?></option>
                        <option value="-2"<?php if ($select_timezone == -2) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-02:00'] ?></option>
                        <option value="-1"<?php if ($select_timezone == -1) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC-01:00'] ?></option>
                        <option value="0"<?php if ($select_timezone == 0) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC'] ?></option>
                        <option value="1"<?php if ($select_timezone == 1) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+01:00'] ?></option>
                        <option value="2"<?php if ($select_timezone == 2) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+02:00'] ?></option>
                        <option value="3"<?php if ($select_timezone == 3) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+03:00'] ?></option>
                        <option value="3.5"<?php if ($select_timezone == 3.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+03:30'] ?></option>
                        <option value="4"<?php if ($select_timezone == 4) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+04:00'] ?></option>
                        <option value="4.5"<?php if ($select_timezone == 4.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+04:30'] ?></option>
                        <option value="5"<?php if ($select_timezone == 5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+05:00'] ?></option>
                        <option value="5.5"<?php if ($select_timezone == 5.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+05:30'] ?></option>
                        <option value="5.75"<?php if ($select_timezone == 5.75) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+05:45'] ?></option>
                        <option value="6"<?php if ($select_timezone == 6) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+06:00'] ?></option>
                        <option value="6.5"<?php if ($select_timezone == 6.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+06:30'] ?></option>
                        <option value="7"<?php if ($select_timezone == 7) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+07:00'] ?></option>
                        <option value="8"<?php if ($select_timezone == 8) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+08:00'] ?></option>
                        <option value="8.75"<?php if ($select_timezone == 8.75) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+08:45'] ?></option>
                        <option value="9"<?php if ($select_timezone == 9) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+09:00'] ?></option>
                        <option value="9.5"<?php if ($select_timezone == 9.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+09:30'] ?></option>
                        <option value="10"<?php if ($select_timezone == 10) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+10:00'] ?></option>
                        <option value="10.5"<?php if ($select_timezone == 10.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+10:30'] ?></option>
                        <option value="11"<?php if ($select_timezone == 11) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+11:00'] ?></option>
                        <option value="11.5"<?php if ($select_timezone == 11.5) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+11:30'] ?></option>
                        <option value="12"<?php if ($select_timezone == 12) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+12:00'] ?></option>
                        <option value="12.75"<?php if ($select_timezone == 12.75) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+12:45'] ?></option>
                        <option value="13"<?php if ($select_timezone == 13) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+13:00'] ?></option>
                        <option value="14"<?php if ($select_timezone == 14) echo ' selected="selected"' ?>><?php echo $lang_profile['UTC+14:00'] ?></option>
                        </select></span>
                    </div>
                </div>
<?php ($hook = get_hook('rg_register_pre_dst_checkbox')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box checkbox">
                        <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="dst"<?php if ($select_dst) echo ' checked="checked"' ?> /></span>
                        <label for="fld<?php echo $forum_page['fld_count'] ?>"><span><?php echo $lang_profile['Adjust for DST'] ?></span> <?php echo $lang_profile['DST label'] ?></label>
                    </div>
                </div>
<?php ($hook = get_hook('rg_register_pre_group_end')) ? eval($hook) : null; ?>
            </div>
<?php ($hook = get_hook('rg_register_group_end')) ? eval($hook) : null; ?>
            <div class="frm-buttons">
                <span class="submit"><input type="submit" name="register" value="<?php echo $lang_profile['Register'] ?>" /></span>
            </div>
        </form>
    </div>
<?php

($hook = get_hook('rg_end')) ? eval($hook) : null;

$tpl_temp = forum_trim(ob_get_contents());
$tpl_main = str_replace('<!-- forum_main -->', $tpl_temp, $tpl_main);
ob_end_clean();
// END SUBST - <!-- forum_main -->

require FORUM_ROOT.'footer.php';

Добавлено спустя 5 минут 10 секунд:

и последний шаг, в файле include\functions.php

в запросе к базе добавил элементы массива передаваемые в базу (которые были созданы в файле register.php)
вот часть кода этого файла (целиком не опубликовался из за ограничения в количестве символов поста форума):

// Adds a new user. The username must be passed through validate_username() first.
function add_user($user_info, &$new_uid)
{
    global $forum_db, $base_url, $lang_common, $forum_config, $forum_user, $forum_url;

    $return = ($hook = get_hook('fn_add_user_start')) ? eval($hook) : null;
    if ($return != null)
        return;

    // Add the user
    $query = array(
        'INSERT'    => 'username, group_id, jabber, realname, aim, yahoo,  password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, salt, activate_key',
        'INTO'        => 'users',
        'VALUES'    => '\''.$forum_db->escape($user_info['username']).'\', '.$user_info['group_id'].', \''.$forum_db->escape($user_info['jabber']).'\', \''.$forum_db->escape($user_info['realname']).'\', \''.$forum_db->escape($user_info['aim']).'\', \''.$forum_db->escape($user_info['yahoo']).'\', \''.$forum_db->escape($user_info['password_hash']).'\', \''.$forum_db->escape($user_info['email']).'\', '.$user_info['email_setting'].', '.floatval($user_info['timezone']).', '.$user_info['dst'].', \''.$forum_db->escape($user_info['language']).'\', \''.$forum_db->escape($user_info['style']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['registration_ip']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['salt']).'\', '.$user_info['activate_key'].''
    );

    ($hook = get_hook('fn_add_user_qr_insert_user')) ? eval($hook) : null;
    $forum_db->query_build($query) or error(__FILE__, __LINE__);
    $new_uid = $forum_db->insert_id();

    // Must the user verify the registration?
    if ($user_info['require_verification'])
    {
        // Load the "welcome" template
        $mail_tpl = forum_trim(file_get_contents(FORUM_ROOT.'lang/'.$forum_user['language'].'/mail_templates/welcome.tpl'));

        // The first row contains the subject
        $first_crlf = strpos($mail_tpl, "\n");
        $mail_subject = forum_trim(substr($mail_tpl, 8, $first_crlf-8));
        $mail_message = forum_trim(substr($mail_tpl, $first_crlf));

        $mail_subject = str_replace('<board_title>', $forum_config['o_board_title'], $mail_subject);
        $mail_message = str_replace('<base_url>', $base_url.'/', $mail_message);
        $mail_message = str_replace('<username>', $user_info['username'], $mail_message);
        $mail_message = str_replace('<activation_url>', str_replace('&amp;', '&', forum_link($forum_url['change_password_key'], array($new_uid, substr($user_info['activate_key'], 1, -1)))), $mail_message);
        $mail_message = str_replace('<activation_url>', str_replace('&amp;', '&', forum_link($forum_url['change_password_key'], array($new_uid, substr($user_info['activate_key'], 1, -1)))), $mail_message);
        $mail_message = str_replace('<board_mailer>', sprintf($lang_common['Forum mailer'], $forum_config['o_board_title']), $mail_message);

        ($hook = get_hook('fn_add_user_send_verification')) ? eval($hook) : null;

        forum_mail($user_info['email'], $mail_subject, $mail_message);
    }

    // Should we alert people on the admin mailing list that a new user has registered?
    if ($user_info['notify_admins'] && $forum_config['o_mailing_list'] != '')
    {
        $mail_subject = 'Alert - New registration';
        $mail_message = 'User \''.$user_info['username'].'\' registered in the forums at '.$base_url.'/'."\n\n".'User profile: '.forum_link($forum_url['user'], $new_uid)."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';

        forum_mail($forum_config['o_mailing_list'], $mail_subject, $mail_message);
    }

    ($hook = get_hook('fn_add_user_end')) ? eval($hook) : null;
}

Добавлено спустя 5 минут 57 секунд:

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

Поделиться

6

Re: (Обязательно) добавление полей при регистрации

cool

Поделиться

7

Re: (Обязательно) добавление полей при регистрации

помогите делал все как вы отписывали все файлы нужные изменил но по нажатию регистрации у меня нечего не отображается вот ссыль http://www.portal.rubegooo.ru/forum/register/

не понимаю что сделано не так оО

Поделиться