Gam1983 2 Опубликовано: 13 января 2013 Рассказать Опубликовано: 13 января 2013 В качестве дополнительной борьбы с ботами хочу установить дополнительное обязательно поле при регистрации. Так ботов хотя бы вычислять проще На просторах интернета нашел что нужно сделать, но это видимо для старых версий Помогите исправить чтобы работало на 9.5 Проблема в следующем - если в настройках стоит расширенный метод регистрации (через е-мэйл) - значение, вводимое в дополнительное поле не записывается в БД. И при активации нового пользователя через почту выдает ошибку что значение введено некорректно.. Ну и естественно регистрация отменяется. Вот схема того что я нашел: Установка: 1. Выполняем sql-запрос: ALTER TABLE `dle_users` ADD `addpolereg` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL; 2. Открываем engine/modules/register.php Ищем: function check_reg($name, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) { Заменяем на: function check_reg($name, $addpolereg, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) { а) Для ручного набора информации (для выбора из списка пропускаем): Ищем: if( strlen( $name ) > 20 ) $stop .= $lang['reg_err_3']; Добавляем ниже: if (strlen($addpolereg) > 30) $stop .= "<li>Не менее 30 символов. Например Adobe Photoshope x.x</li>"; if (strlen($addpolereg) < 3) $stop .= "<li>Не менее 3 символов. Например Adobe Photoshope x.x</li>"; Ищем: $name = $db->safesql($parse->process(htmlspecialchars(trim($_POST['name'])))); Добавляем ниже: $addpolereg = $db->safesql($parse->process($_POST['addpolereg'])); Ищем: $reg_error = check_reg( $name, $email, $password1, $password2, $sec_code, $sec_code_session ); Заменяем на: $reg_error = check_reg( $name, $addpolereg, $email, $password1, $password2, $sec_code, $sec_code_session ); Ищем: $reg_error = check_reg( $name, $email, $regpassword, $regpassword ); Заменяем на: $reg_error = check_reg( $name, $addpolereg, $email, $regpassword, $regpassword ); Ищем: $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, addpolereg, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$addpolereg', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" ); 3. Открываем engine/modules/profile.php Ищем: $tpl->set( '{usertitle}', stripslashes( $row['name'] ) ); Добавляем ниже: $tpl->set( '{addpolereg}', stripslashes( $row['addpolereg'] ) ); Ищем: $stop = false; Добавляем ниже: $addpolereg = $db->safesql( $parse->process( $_POST['addpolereg'] ) ); Ищем: $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', addpolereg='$addpolereg', 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', addpolereg='$addpolereg', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'"; } 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, addpolereg, Ищем: $tpl->set( '{comm-num}', intval( $row['comm_num'] ) ); Добавляем ниже: $tpl->set( '{addpolereg}', $row['addpolereg'] ); 5. Открываем engine/modules/lastcomments.php Ищем: USERPREFIX . "_users.email, news_num, Заменяем на: USERPREFIX . "_users.email, news_num, skype, addpolereg, Ищем: $tpl->set( '{comm-num}', intval( $row['comm_num'] ) ); Добавляем ниже: $tpl->set( '{addpolereg}', $row['addpolereg'] ); 6. Открываем templates/{Ваш шаблон}/registration.tpl а) Для ручного набора информации: В нужном месте вставляем <input type="text" name="addpolereg" id='addpolereg' style="width:167px; height:20px; font-family:tahoma; font-size:11px; border:1px solid #E0E0E0;" /> б) Для выбора из списка: В нужном месте вставляем <tr> <td height="25">Версия Фотошопа:</td> <td colspan="2"><select name="addpolereg" id="addpolereg" value="{addpolereg}"> <option value="Adobe Photoshop 11 (CS 4)">Adobe Photoshop 11 (CS 4)</option> <option value="Adobe Photoshop 10 (CS 3)">Adobe Photoshop 10 (CS 3)</option> <option value="Adobe Photoshop 9 (CS 2)">Adobe Photoshop 9 (CS 2)</option> <option value="Adobe Photoshop 8 (CS)">Adobe Photoshop 8 (CS)</option> <option value="Adobe Photoshop 7">Adobe Photoshop 7</option> </td> </tr> 7. Открываем templates/{Ваш шаблон}/userinfo.tpl В нужном месте вставляем (для вывода информации) <br><b>Версия Фотошопа: </b>{addpolereg} Там же в редактировании профиля в удобном месте добавляем: а) Для ручного набора информации: <input type="text" name="addpolereg" value="{addpolereg}" class="f_input" /> б) Для выбора из списка: <tr> <td height="25"><b>Версия Фотошопа:</b></td> <td colspan="2"><select name="addpolereg" id="addpolereg" value="{addpolereg}"> <option value="Adobe Photoshop 11 (CS 4)">Adobe Photoshop 11 (CS 4)</option> <option value="Adobe Photoshop 10 (CS 3)">Adobe Photoshop 10 (CS 3)</option> <option value="Adobe Photoshop 9 (CS 2)">Adobe Photoshop 9 (CS 2)</option> <option value="Adobe Photoshop 8 (CS)">Adobe Photoshop 8 (CS)</option> <option value="Adobe Photoshop 7">Adobe Photoshop 7</option> </td> </tr> 7. Открываем templates/{Ваш шаблон}/comments.tpl В нужном месте вставляем (для вывода информации) <br><b>Версия Фотошопа: </b>{addpolereg} Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.