Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2020-03-22 15:46:10

maxwof
Новичок
Зарегистрирован: 2020-03-21
Сообщений: 2

Ввод реального имени при регистрации

Здраствуйте! Мне на форуме нужно, чтобы новый пользователь при регистрации вводил свое настоящее имя. Есть такое расширение для fluxbb? Или похожее по функционалу, чтобы переделать под свои нужды. Спасибо.

Редактировался maxwof (2020-03-22 23:44:04)

Offline

#2 2020-03-23 01:35:24

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Ввод реального имени при регистрации

@maxwof, поле для настоящего имени есть в профиле. Можно потребовать его заполнение после регистрации.

А для добавления в регистрацию поля нужно (в файле register.php):
1. По аналогии с полем логина

				<fieldset>
					<legend><?php echo $lang_register['Username legend'] ?></legend>
					<div class="infldset">
						<input type="hidden" name="form_sent" value="1" />
						<label class="required"><strong><?php echo $lang_common['Username'] ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="text" name="req_user" value="<?php if (isset($_POST['req_user'])) echo pun_htmlspecialchars($_POST['req_user']); ?>" size="25" maxlength="25" /><br /></label>
					</div>
				</fieldset>

рядом прописать

				<fieldset>
					<legend><?php echo 'Введите свое реальное имя' ?></legend>
					<div class="infldset">
						<label class="required"><strong><?php echo 'Реальное имя' ?> <span><?php echo $lang_common['Required'] ?></span></strong><br /><input type="text" name="req_realname" value="<?php if (isset($_POST['req_realname'])) echo pun_htmlspecialchars($_POST['req_realname']); ?>" size="25" maxlength="40" /><br /></label>
					</div>
				</fieldset>

2. Дополнить массив

$required_fields = array('req_user' => $lang_common['Username'], 'req_password1' => $lang_common['Password'], 'req_password2' => $lang_prof_reg['Confirm pass'], 'req_email1' => $lang_common['Email'], 'req_email2' => $lang_common['Email'].' 2');

элементом

'req_realname' => 'Реальное имя'

3. Рядом с

	$username = pun_trim($_POST['req_user']);

добавить

	$realname = pun_trim($_POST['req_realname']);

4. Рядом с

	check_username($username);

добавить проверку

	if ('' == $realname) {
		$errors[] = 'Реальное имя не должно быть пустым';
	}

5. В запрос

		$db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$db->escape($password_hash).'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$timezone.' , '.$dst.', \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.$db->escape(get_remote_address()).'\', '.$now.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());

в перечисление полей нужно добавить имя поля

realname

а в перечисление значений его заэкранированное значение

\''.$db->escape($realname).'\'

Добавлять нужно либо в начало имен/значений, либо в конец, чтобы позиции в списках совпадали.

P.S. Если соберетесь добавлять другое поле, то его нужно создать в таблице пользователей в базе форума.

Offline

#3 2020-03-23 13:49:37

maxwof
Новичок
Зарегистрирован: 2020-03-21
Сообщений: 2

Re: Ввод реального имени при регистрации

Спасибо большое за детальный ответ. Все получилось smile

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens