Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Simple Quick Register

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 18 лет 9 месяцев
Откуда: Москва, Fortuna-net

Simple Quick Register

Сообщение svk »

Быстрая регистрация.
Пример можно посмотреть на http://qfs.quadra.ru
Включается/отключается мод из админки

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

##############################################################
## MOD Title: Simple Quick Register
## MOD Author: svk < svk@front.ru > (Sergey) http://phpbbguru.net
## MOD Description: Add yhe quick register form to you board (on the index)
## MOD Version: 1.0.0
## 
## Installation Level: Easy
## Installation Time: 10 minutes
## Files To Edit: index.php
##                templates/subSilver/index_body.tpl
##                admin/admin_board.php
##                templates/subSilver/admin/board_config_body.tpl
##                reg.php
## Included Files: n/a
## License: http://opensource.org/licenses/gpl-license.php GNU Public License v2
############################################################## 
## For security purposes, please check: http://www.phpbb.com/mods/ 
## for the latest version of this MOD. Although MODs are checked 
## before being allowed in the MODs Database there is no guarantee 
## that there are no security problems within the MOD. No support 
## will be given for MODs not found within the MODs Database which 
## can be found at http://www.phpbb.com/mods/ 
##############################################################
## Author Notes: For qfs.quadra.ru
##############################################################
## MOD History:
## 
##   2005-08-10 - Version 1.0.0
## 
##      - First Stable release. Version 1.0.0 of a MOD is always it's first stable release.
## 
##   2005-08-17 - Version 1.3.0
##       -Fix bugs
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
##############################################################

#
#-----[ SQL ]------------------------------------------
#
INSERT INTO phpbb_config VALUES ('qr', 1);
#
#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
	$template->assign_vars(array(
		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$out = "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"1\" border=\"0\" class=\"forumline\">
		<tr><th class=\"row1\" align=\"center\">Быстрая регистрация:</td></tr>
	  <tr>
	  <td class=\"row1\" align=\"center\" valign=\"middle\" height=\"28\"><span class=\"gensmall\">
<form method=\"post\" action=\"reg.php\">
		Имя: <input class=\"post\" type=\"text\" name=\"lgn\" size=\"8\" />
		Пароль: <input class=\"post\" type=\"password\" name=\"pass\" size=\"10\" />
		Повторите: <input class=\"post\" type=\"password\" name=\"pass2\" size=\"10\" />
		E-mail: <input class=\"post\" type=\"text\" name=\"milo\" size=\"15\" />
		<input type=\"submit\" name=\"submit\" value=\"Зарегистрироваться\" class=\"mainoption\" />
		</span> </td></tr></form></table>";

#
#-----[ FIND ]------------------------------------------
#
		'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
	);

#
#-----[ BEFORE, ADD ]------------------------------------------
#
		'QR' => $out,

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/index_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<!-- END switch_user_logged_out -->

#
#-----[ BEFORE, ADD ]------------------------------------------
#
{QR}

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php
#
#-----[ FIND ]------------------------------------------
#
$disable_board_yes = ( $new['board_disable'] ) ? "checked=\"checked\"" : "";
$disable_board_no = ( !$new['board_disable'] ) ? "checked=\"checked\"" : "";

#
#-----[ AFTER, ADD ]------------------------------------------
#

$qr_yes = ( $new['qr'] ) ? "checked=\"checked\"" : "";
$qr_no = ( !$new['qr'] ) ? "checked=\"checked\"" : "";

#
#-----[ FIND ]------------------------------------------
#
	"SMTP_YES" => $smtp_yes,
	"SMTP_NO" => $smtp_no,

#
#-----[ AFTER, ADD ]------------------------------------------
#
	"QR_YES" => $qr_yes,
	"QR_NO" => $qr_no,

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl
#
#-----[ FIND ]------------------------------------------
#
	<tr>
		<td class="row1">{L_DISABLE_BOARD}<br /><span class="gensmall">{L_DISABLE_BOARD_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="board_disable" value="1" {S_DISABLE_BOARD_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="board_disable" value="0" {S_DISABLE_BOARD_NO} /> {L_NO}</td>
	</tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#
	<tr>
		<td class="row1">Включить форму быстрой регистрации?<br /><span class="gensmall">Включает или выключает форму быстрой регистрации пользователей</span></td>
		<td class="row2"><input type="radio" name="qr" value="1" {QR_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="qr" value="0" {QR_NO} /> {L_NO}</td>
	</tr>

#
#-----[ OPEN ]------------------------------------------
#
# Файл не существует - создайте его
# File doesn't exist, create it

reg.php

#
#-----[ AFTER, ADD ]------------------------------------------
#
<?php 

/*************************************************************************** 
* reg.php 
* ------------------- 
* begin : Wednesday, Avgust 10, 2006 
* copyright : (C) 2005 svk 
* email : svk@front.ru 
* 
* Special for qfs.quadra.ru 
* 
* 
***************************************************************************/ 


define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$back = "<p><a href = \"$board_config[script_path]\">Вернуться</a>"; 

//Получаю значение логина, пасса и мыла которые переданы от индекса 
if( isset($HTTP_POST_VARS['submit']) ) 
{ 

$login = isset($HTTP_POST_VARS['lgn']) ? $HTTP_POST_VARS['lgn'] : ''; 
$pass = isset($HTTP_POST_VARS['pass']) ? $HTTP_POST_VARS['pass'] : ''; 
$pass2 = isset($HTTP_POST_VARS['pass2']) ? $HTTP_POST_VARS['pass2'] : ''; 
$milo = isset($HTTP_POST_VARS['milo']) ? $HTTP_POST_VARS['milo'] : ''; 
} 
else {
message_die (GENERAL_ERROR, "Hacking attempt! You IP was logged and sent to administrator<br>Зафиксирована попытка взлома! Ваш IP был записан и выслан администратору.");} 
//Проверяю совпадение пароля и подтверждения 
if ($pass != $pass2) {message_die (GENERAL_ERROR, "Пароли не совпадают $back");} 


//Проверяю на пустоту.... 
if (empty($login) OR empty($pass) OR empty($milo)) {message_die (GENERAL_ERROR, "Вы должны ввести имя пользователя, пароль и E-mail адрес! $back");} 

//Проверяю не занят ли логин 
$sql = "SELECT username, user_email FROM " .USERS_TABLE ." WHERE username = '$login'"; 
$result = $db->sql_query($sql); 
$urow = $db->sql_fetchrow($result); 
if (empty($urow['username'])) {} else {message_die (GENERAL_ERROR, "Такой пользователь уже существует $back");} 
$sql = "SELECT username, user_email FROM " .USERS_TABLE ." WHERE user_email = '$milo'"; 
$result = $db->sql_query($sql); 
$urow = $db->sql_fetchrow($result); 

//Пароль совпал с логином? Непорядок! 
if ($pass == $login) {message_die (GENERAL_ERROR, "Пароль не должен совпадать с именем пользователя. $back");} 


//Проверяю корректность введенного мыла... 
if (!eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}",$milo)) {message_die (GENERAL_ERROR, "Введите корректный E-mail! $back");} 

//Проверяю не занято ли мыло 
if (empty($urow['user_email'])) {} else {message_die (GENERAL_ERROR, "Пользователь с таким E-mail адресом уже существует $back");} 

//Получаю максимальный user_id который есть в базе 
$sql = "select max(user_id) from " .USERS_TABLE; 
$result = $db->sql_query($sql); 
$urow = $db->sql_fetchrow($result); 
$mu = $urow['max(user_id)'] + 1; 


//Криптую пасс md5 
$pass = md5($pass); 
//Убираю всякую чушь из имени пользователя (sql injection мне не нужно :)) 
//$login = str_replace("\'", "''", ";", $login); 

//Собственно, сам запрос добавления юзера 
		$rtime = time();
$sql = "INSERT INTO " .USERS_TABLE ." (user_regdate, user_id, user_active, username, user_password, user_email, user_lang) VALUES ('$rtime', $mu, 1, '$login', '$pass', '$milo', 'russian')";


if( !($result = $db->sql_query($sql)) ) 
{ 
message_die(GENERAL_ERROR, 'Could not register user. Mysql error', '', __LINE__, __FILE__, $sql); 
} 

$sql = "SELECT max(group_id) FROM " .GROUPS_TABLE;
$result = $db->sql_query($sql); 
$grow = $db->sql_fetchrow($result); 
$gid = $grow['max(group_id)'] + 1;

$sql = "INSERT INTO " .GROUPS_TABLE ." VALUES ($gid, 1, '', 'Personal User', 0, 1)";
$result = $db->sql_query($sql); 

$sql = "INSERT INTO ". USER_GROUP_TABLE ." VALUES ($gid, $mu, 0)";
$result = $db->sql_query($sql); 

message_die(MESSAGE, "Пользователь успешно зарегистрирован. $back"); 

?>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

Последний раз редактировалось svk 27.08.2005 15:29, всего редактировалось 5 раз.
NETBYNET Holding system administrator
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Сообщение Siava »

svk
Ещё бы сделать защиту от ботов, хотя бы визуальное подтверждение =)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 18 лет 9 месяцев
Откуда: Москва, Fortuna-net

Сообщение svk »

тогда это уже не будет быстрой регистрацией ))))
Какую нить защиту придумать надо, тока не очень представляю какую
NETBYNET Holding system administrator
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

svk
Привет квадрянам от веснетовцев :wink:
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 18 лет 9 месяцев
Откуда: Москва, Fortuna-net

Сообщение svk »

Упс, битую версию выложил, если кто уже скачал/поставил ( в чем я очень сомневаюсь но все же :)) то закомментируйте строчку

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

$login = str_replace("\'", "''", ";", $login); 
Первое сообщение поправил

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

MAzZY
Хех, nbn рулит :)
Ты из веснета, я из квадры, один из здешних гуру (не буду говорить какой из) из орнета :)
NETBYNET Holding system administrator
sigal
phpBB Plus
Сообщения: 442
Стаж: 19 лет 11 месяцев
Откуда: КПРФ ;)

Сообщение sigal »

svk
хороший мод. мне нравится.
а что если ставить форму быстрой регистрации не вниз, а наверх после списка форумов, но, перед глансом.
где копать в этом случае?
Аватара пользователя
Austin 3:16
phpBB 1.4.4
Сообщения: 127
Стаж: 19 лет 1 месяц
Откуда: Таллинн, Эстония
Забанен: Бессрочно

Сообщение Austin 3:16 »

sigal писал(а):svk
хороший мод. мне нравится.
а что если ставить форму быстрой регистрации не вниз, а наверх после списка форумов, но, перед глансом.
где копать в этом случае?
index_body.tpl
sigal
phpBB Plus
Сообщения: 442
Стаж: 19 лет 11 месяцев
Откуда: КПРФ ;)

Сообщение sigal »

а именно?
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Ваш IP был записан и выслан администрОтору
Аватара пользователя
Austin 3:16
phpBB 1.4.4
Сообщения: 127
Стаж: 19 лет 1 месяц
Откуда: Таллинн, Эстония
Забанен: Бессрочно

Сообщение Austin 3:16 »

sigal писал(а):а именно?
А именно перетайскивайте куда вам захочется.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

svk
Реализация не впечатляет. Данные для регистрации (логин, пароль, подтверждение пароля, почтовый адрес) необходимо передавать в стандартный файл, отвечающий за регистрацию.

Добавлено спустя 51 секунду:

Кроме того код некорректен, нет создания персональной группы для пользователя.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 18 лет 9 месяцев
Откуда: Москва, Fortuna-net

Сообщение svk »

Вот про группы поподробнее.
Ну мона и в стандартный конечно, разницы особой то нет.
Даже если какие то моды еще стоят то он оставит их поля пустыми и все...
NETBYNET Holding system administrator
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

svk
а что про группы подробнее? видел стандартный usercp_register.php?
видимо нет... для интереса... вот еще insert при регистрации...

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

			$sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator)
				VALUES ('', 'Personal User', 1, 0)";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql);
			}

			$group_id = $db->sql_nextid();

			$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
				VALUES ($user_id, $group_id, 0)";
			if( !($result = $db->sql_query($sql, END_TRANSACTION)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql);
			}
и идет сие чудо... прям сразу после вставки в users_table..... не просто так идет... а потому, что для присвоения прав, например, используются ID'ы группы... и для пользователей заводится отдельный ID... такие персональные ID'ы отличаются например описанием... Personal User... а также парой значний...
group_single_user и group_moderator... 1 и 0 соответственно...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
svk
phpBB 2.0.3
Сообщения: 384
Стаж: 18 лет 9 месяцев
Откуда: Москва, Fortuna-net

Сообщение svk »

Обновление
Добавил про группы и исправил один небольшой баг.
Просто обновить reg.php
[R: R@m$e$ :U]
Угу, когда я твое сообщение прочитал уже все написал :)

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

Xpert
ИМХО лучше свои запросы написать, а то с некоторыми модами которые улучшают регистрацию могут проблемы возникнуть.
NETBYNET Holding system administrator
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 19 лет 9 месяцев
Откуда: Москва
Благодарил (а): 209 раз
Поблагодарили: 4 раза

Сообщение Erlang »

svk писал(а):Быстрая регистрация.
Пример можно посмотреть на http://qfs.quadra.ru
Включается/отключается мод из админки
Хотел посмотреть, а там:
Вам был закрыт доступ к форуму
Обратитесь к вебмастеру или администратору форумов за дополнительной информацией
:cry:
С уважением,
Сергей

Вернуться в «Бета-версии модов для phpBB 2.0.x»