• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Дополнительное поле при регистрации

chepic

Создатель
Регистрация
22 Дек 2007
Сообщения
40
Реакции
0
Добрый вечер.
Делаю регистрацию на сайте в один шаг. Но выплыл один нюанс, мне нужно вывести дополнительное поле в регистрации. На сколько я понял, то доп поле выводится при регистрации только внутри [validation][/validation]. Как мне заставить доп. поле быть активным внутри [registration][/registration]????
Пробовал выдрать со второй страницы доп. поле, но оно не сохраняется!!!

Помогите пожалуйста, что нужно подправить??? Очень надо!!!
Версия DLE: 9.8

Где знатоки??? Помогите пожалуйста! Проблема актуальна! Может кто то знает другой способ добавить дополнительное поле в регистрацию!!!

Кидать нечего. Проблема в том, что на первом єтапе регистрации(при вводе логина и пароля), выводятся на страницу поля с [registration][/registration], но если туда поставить {xfields}(отвечает за вывод доп. полей), то он не обрабатывается движком и просто выводится как надпись! Мне нужно, чтоб он заработал, выводил дополнительные поля на странице где ввод логина, пароля и почты!

Объясните пожалуйста как для начинающего, что нужно вставлять!!! Я пока только учусь :)
 
из блока:
PHP:
if( $doaction == "validating" AND !$stopregistration ) {
   
    $tpl->load_template( 'registration.tpl' );
   
    $tpl->set( '[validation]', "" );
    $tpl->set( '[/validation]', "" );
    $tpl->set_block( "'\\[registration\\].*?\\[/registration\\]'si", "" );
   
    $xfieldsaction = "list";
    $xfieldsadd = true;
    include (ENGINE_DIR . '/inc/userfields.php');
    $tpl->set( '{xfields}', $output );
 
    $_REQUEST['id'] = htmlspecialchars( $_REQUEST['id'], ENT_QUOTES, $config['charset'] );
 
    $tpl->copy_template = "<form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"\">\n" . $tpl->copy_template . "
<input name=\"submit_val\" type=\"hidden\" id=\"submit_val\" value=\"submit_val\" />
<input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />
<input name=\"doaction\" type=\"hidden\" id=\"doaction\" value=\"validating\" />
<input name=\"id\" type=\"hidden\" id=\"id\" value=\"{$_REQUEST['id']}\" />
</form>";
   
    $tpl->compile( 'content' );
    $tpl->clear();
}
[/spoil]
вырезать код:
[spoil]
PHP:
    $xfieldsaction = "list";
    $xfieldsadd = true;
    include (ENGINE_DIR . '/inc/userfields.php');
    $tpl->set( '{xfields}', $output );
[/spoil]
и вставить после блока:
[spoil]
PHP:
} else {
 
            $tpl->set_block( "'\\[question\\](.*?)\\[/question\\]'si", "" );
            $tpl->set( '{question}', "" );
 
        }
и пробуй вставлять свои теги вывода дополнительных полей
 
inmy, мало кода скопировать предлагаете...

Этот забыли:
PHP:
$xfieldsaction = "init";
		$xfieldsadd = true;
		$xfieldsid = "";
		include (ENGINE_DIR . '/inc/userfields.php');
		$filecontents = array ();
		
		if( ! empty( $postedxfields ) ) {
			foreach ( $postedxfields as $xfielddataname => $xfielddatavalue ) {
				if( ! $xfielddatavalue ) {
					continue;
				}
				
				$xfielddatavalue = $db->safesql( $parse->BB_Parse( $parse->process( $xfielddatavalue ), false ) );
				
				$xfielddataname = $db->safesql( $xfielddataname );
				
				$xfielddataname = str_replace( "|", "&#124;", $xfielddataname );
				$xfielddatavalue = str_replace( "|", "&#124;", $xfielddatavalue );
				$filecontents[] = "$xfielddataname|$xfielddatavalue";
			}
			
			$filecontents = implode( "||", $filecontents );
		} else
			$filecontents = '';

А ещё не плохо бы записать результат в БД:
PHP:
xfields='$filecontents'
Это ы INSERT добавить надо будет.

Но опять же, этот код забирает данные из адресной строки ($_GET), а не $_POST, следовательно его надо переписывать.

А Ваш код отвечает лишь за вывод в форму доп полей...
 
Назад
Сверху