04 авг 2010
Новые дополнительные поля при регистрации
Ares Категория: DATALIFE ENGINE » Модули
У нас вы можете скачать бесплатно Новые дополнительные поля при регистрации

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Новые дополнительные поля при регистрации


Установка


1. Выполняем sql-запрос:
ALTER TABLE  `dle_users` ADD  `familiya` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE  `dle_users` ADD  `imya` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE  `dle_users` ADD  `otchestvo` VARCHAR( 20 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE  `dle_users` ADD  `pol` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE  `dle_users` ADD  `strana` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE  `dle_users` ADD  `gorod` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;


Значение VARCHAR и кодировку ставим по вкусу. Также ставим свой префикс к БД.

2. Открываем engine/modules/register.php

Ищем:
function check_reg($name, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) {



Заменяем на:
function check_reg($name, $email, $password1, $password2, $familiya, $imya, $otchestvo, $pol, $strana, $gorod, $sec_code = 1, $sec_code_session = 1) {



Ищем:
if( strlen( $name ) > 20 ) $stop .= $lang['reg_err_3'];



Добавляем ниже:
if (strlen($familiya) > 15) $stop .= "<li>Фамилия должна быть не более 15 символов. </li>";
if (strlen($familiya) < 3) $stop .= "<li>Фамилия должна быть не менее 3 символов.</li>";

if (strlen($imya) > 15) $stop .= "<li>Имя должно быть не более 15 символов.</li>";
if (strlen($imya) < 3) $stop .= "<li>Имя должно быть не менее 3 символов.</li>";

if (strlen($otchestvo) > 15) $stop .= "<li>Отчество должно быть не более 15 символов.</li>";
if (strlen($otchestvo) < 3) $stop .= "<li>Отчество должно быть не менее 3 символов.</li>";

if (strlen($strana) > 15) $stop .= "<li>Страна должна быть не более 15 символов.</li>";
if (strlen($strana) < 3) $stop .= "<li>Страна должна быть не менее 3 символов.</li>";

if (strlen($gorod) > 15) $stop .= "<li>Город должен быть не более 15 символов.</li>";
if (strlen($gorod) < 3) $stop .= "<li>Город должен быть не менее 3 символов.</li>";

    if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $familiya ) ) $stop .= "<li>Фамилия содержит непопустимые символы.</li>";
    if( preg_match( "/[0-9]/", $familiya ) ) $stop .= "<li>Фамилия содержит непопустимые символы.</li>";


    if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $imya ) ) $stop .= "<li>Имя содержит непопустимые символы</li>";
    if( preg_match( "/[0-9]/", $imya ) ) $stop .= "<li>Имя содержит непопустимые символы</li>";


    if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $otchestvo ) ) $stop .= "<li>Отчество содержит непопустимые символы</li>";
    if( preg_match( "/[0-9]/", $otchestvo ) ) $stop .= "<li>Отчество содержит непопустимые символы</li>";


    if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $strana ) ) $stop .= "<li>Страна содержит непопустимые символы</li>";
    if( preg_match( "/[0-9]/", $strana ) ) $stop .= "<li>Страна содержит непопустимые символы</li>";


    if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $gorod ) ) $stop .= "<li>Город содержит непопустимые символы</li>";
    if( preg_match( "/[0-9]/", $gorod ) ) $stop .= "<li>Город содержит непопустимые символы</li>";

Длинну строки настраиваем по вкусу. Также настраиваем проверку на спец символы и тоже по вкусу. Текст ошибок можно оставить как есть, а можно всунуть в ленгвич файл и подключать переменными, в тиле $lang['reg_err_номерошибки'] - кому как нравится.


Ищем:
$email = $db->safesql( $parse->process( $_POST['email'] ) );



Добавляем ниже:
    $familiya = $db->safesql($parse->process($_POST['familiya']));
    $imya = $db->safesql($parse->process($_POST['imya']));
    $otchestvo = $db->safesql($parse->process($_POST['otchestvo']));
    $pol = $db->safesql($parse->process($_POST['pol']));
    $strana = $db->safesql($parse->process($_POST['strana']));
    $gorod = $db->safesql($parse->process($_POST['gorod']));



Ищем:
$reg_error = check_reg( $name, $email, $password1, $password2, $sec_code, $sec_code_session );



Меняем на:
$reg_error = check_reg( $name, $email, $password1, $password2, $familiya, $imya, $otchestvo, $pol, $strana, $gorod, $sec_code, $sec_code_session );



Ищем:
$reg_error = check_reg( $name, $email, $regpassword, $regpassword );



Меняем на:
$reg_error = check_reg( $name, $email, $regpassword, $regpassword, $familiya, $imya, $otchestvo, $pol, $strana, $gorod );



Ищем:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );



Меняем на:
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, familiya, imya, otchestvo, pol, strana, gorod, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$familiya', '$imya', '$otchestvo', '$pol', '$strana', '$gorod',  '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );




3. Открываем engine/modules/profile.php

Ищем:
$tpl->set( '{usertitle}', stripslashes( $row['name'] ) );


Добавляем ниже:
    $tpl->set( '{familiya}', stripslashes( $row['familiya'] ) );
    $tpl->set( '{imya}', stripslashes( $row['imya'] ) );
    $tpl->set( '{otchestvo}', stripslashes( $row['otchestvo'] ) );
    $tpl->set( '{pol}', stripslashes( $row['pol'] ) );
    $tpl->set( '{strana}', stripslashes( $row['strana'] ) );
    $tpl->set( '{gorod}', stripslashes( $row['gorod'] ) );



Ищем:
$stop = false;


Добавляем ниже:
  $familiya = $db->safesql( $parse->process( $_POST['familiya'] ) );
  $imya = $db->safesql( $parse->process( $_POST['imya'] ) );
  $otchestvo = $db->safesql( $parse->process( $_POST['otchestvo'] ) );
  $pol= $db->safesql( $parse->process( $_POST['pol'] ) );

$strana= $db->safesql( $parse->process( $_POST['strana'] ) );
$gorod= $db->safesql( $parse->process( $_POST['gorod'] ) );



Ищем:
$password1 = md5( md5( $password1 ) );
            $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
        
        } else {
            
            $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
        
        }


Заменяем на:
            $password1 = md5( md5( $password1 ) );
            $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', familiya='$familiya', imya='$imya', otchestvo='$otchestvo', pol='$pol', strana='$strana', gorod='$gorod', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
        
        } else {
            
            $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', familiya='$familiya', imya='$imya', otchestvo='$otchestvo', pol='$pol', strana='$strana', gorod='$gorod', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
        
        }




4. Открываем engine/modules/show.full.php

Ищем:
USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature,



Заменяем на:
USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, familiya, imya, otchestvo, pol, strana, gorod,




5. Открываем engine/modules/lastcomments.php

Ищем:
USERPREFIX . "_users.email, news_num,



Заменяем на:
USERPREFIX . "_users.email, news_num, familiya, imya, otchestvo, pol, strana, gorod,



Ищем:
$tpl->set( '{comm-num}', intval( $row['comm_num'] ) );


Добавляем ниже:
$tpl->set( '{addpolereg}', $row['addpolereg'] );



6. Открываем engine/classes/comments.class.php

Ищем:
            $tpl->set( '{comm-num}', intval( $row['comm_num'] ) );



Добавляем ниже:
            $tpl->set( '{familiya}', $row['familiya'] );
            $tpl->set( '{imya}', $row['imya'] );
            $tpl->set( '{otchestvo}', $row['otchestvo'] );
            $tpl->set( '{pol}', $row['pol'] );
            $tpl->set( '{strana}', $row['strana'] );
            $tpl->set( '{gorod}', $row['gorod'] );





7. Открываем registration.tpl и в нужное место вставляем (правим под свой стиль шаблона):
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Фамилия:</td>
                                        <td><input type="text" name="familiya" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Имя:</td>
                                        <td><input type="text" name="imya" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Отчество:</td>
                                        <td><input type="text" name="otchestvo" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Пол:</td>
                                        <td><select name="pol" id="pol"><option value="М" />Мужской</option>
<option value="Ж" />Женский</option></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Страна :</td>
                                        <td><input type="text" name="strana" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Город:</td>
                                        <td><input type="text" name="gorod" class="f_input" /></td>
                                      </tr>




8. Открываем comments.tpl и в нужное место выводим нужние теги, например:
<br />Фамилия: {familiya}<br />Имя: {imya}<br />Отчество: {otchestvo}<br />Пол: {pol}<br />Страна: {strana}<br />Город: {gorod}



9. Открываем userinfo.tpl и в нужное место выводим нужние теги, например:
Фамилия: {familiya}<br />Имя: {imya}<br />Отчество: {otchestvo}<br />Пол: {pol}<br />Страна: {strana}<br />Город: {gorod}<br />



Также в этом же файле можем добавить возможность пользователю редактировать его данные. Вот пример когда пользователь может менять все поля:
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Фамилия:</td>
                                        <td><input type="text" name="familiya" value="{familiya}" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Имя:</td>
                                        <td><input type="text" name="imya" value="{imya}" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Отчество:</td>
                                        <td><input type="text" name="otchestvo" value="{otchestvo}" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Пол:</td>
                                        <td><select name="pol" id="pol" value="{pol}" ><option value="М" />Мужской</option>
<option value="Ж" />Женский</option></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Страна :</td>
                                        <td><input type="text" name="strana" value="{strana}" class="f_input" /></td>
                                      </tr>
                                      <tr>
                                        <td width="130" height="25"><font color="eb3d00">*</font>&nbsp;Город:</td>
                                        <td><input type="text" name="gorod" value="{gorod}" class="f_input" /></td>
                                      </tr>



Новые дополнительные поля при регистрации



Внимание! У вас нет прав для просмотра скрытого текста.









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Itachi Uchiha | 4 августа 2010 13:42
  • Группа: Посетители |
  • Комментарий: 1 (ссылка)

хахахаахах. прям смешно. что так сложно сделать всё черед дополнительные поля профиля ? там работы на 1 минуты и всё гораздо проще

Nik | 4 августа 2010 13:47
  • Группа: Посетители |
  • Комментарий: 2 (ссылка)

Itachi Uchiha,
читай внимательно - обязательные к заполнению

23

dima-223 | 15 октября 2010 15:17
  • Группа: Посетители |
  • Комментарий: 3 (ссылка)

А на кой версии двига эт написанно?

Itachi Uchiha | 15 октября 2010 15:26
  • Группа: Посетители |
  • Комментарий: 4 (ссылка)

Nik,
в статье это нигде не написано
dima-223,
должно работать на всех версиях

wiillow | 7 июня 2011 11:02
  • Группа: Посетители |
  • Комментарий: 5 (ссылка)

имя фамилия отчество убили...

cefire | 13 июня 2011 14:27
  • Группа: Посетители |
  • Комментарий: 6 (ссылка)

Только лишняя нагрузка на БД

Elliza | 30 июня 2011 01:29

Я скачал бесплатно хрумер а там одни трояны... правду говорят, что ломаного хрумера 7 нет?


8-)


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

ANRY | 13 сентября 2011 14:39
  • Группа: Посетители |
  • Комментарий: 8 (ссылка)

При прописывание всех строк перестаёт работать регистрация..

Ошибка регистрации

Оба введенных пароля должны быть идентичны!
Длина пароля должна быть не менее 6 символов и не более 16!



Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.