MusicJam

Рейтинг
44
Регистрация
29.12.2009
Должность
Юрист
Интересы
Music
Array ( [do] => register [name] => ololo => ololo@ololo.ru [password1] => 123123 [password2] => 123123 [question_answer] => 5 [submit] => Зарегистрироваться [submit_reg] => submit_reg )

Вот что получилось, как вижу, question_answer передаётся... но почему-то если с других страниц данную форму передавать, всеравно пишет "Введен неверный ответ на контрольный вопрос", если же быть на странице регистрации, и ту же форму заполнять (всплывающую, ту что и на других страницах), то все нормально. В чем может быть проблема ?

---------- Добавлено 03.12.2014 в 15:17 ----------

Нашел еще одну строчку, в register.php, отвечающую за контрольный вопрос:

if( !$reg_error AND !$stopregistration ) {

$stronghash = sha1(DBHOST . DBNAME . SECURE_AUTH_KEY);

if( $config['registration_type'] ) {

много разного текста не касающегося question...

$_SESSION['question'] = false;

много разного текста не касающегося question...

}

}
Mad_Man:
А теперь самое главное: что вы имеете в виду под "на других страницах значение доп. поля не передаёт в форму регистрации"? Чем именно вы это проверяли? Не могли бы вы воткнуть "print_r($_REQUEST); die;" в шапку файла регистрации и выложить сюда результаты двух тестов на регистрацию с главной страницы и со страницы обычной регистрации?

Добавил в шапку файла, никакой инфо о переменной не увидел, ни в исходном коде страницы, ни наглядно :(

Mad_Man, извините, вот куски кода файла register.php (весь не влазит) - где форма успешно передаётся, как я понял, отсюда нужно что-то скопировать и влепить в другой файлик ?)

if( $config['reg_question'] ) {


if ( intval($_SESSION['question']) ) {

$answer = $db->super_query("SELECT id, answer FROM " . PREFIX . "_question WHERE id='".intval($_SESSION['question'])."'");

$answers = explode( "\n", $answer['answer'] );

$pass_answer = false;

if( function_exists('mb_strtolower') ) {
$question_answer = trim(mb_strtolower($_POST['question_answer'], $config['charset']));
} else {
$question_answer = trim(strtolower($_POST['question_answer']));
}

if( count($answers) AND $question_answer ) {
foreach( $answers as $answer ){

if( function_exists('mb_strtolower') ) {
$answer = trim(mb_strtolower($answer, $config['charset']));
} else {
$answer = trim(strtolower($answer));
}

if( $answer AND $answer == $question_answer ) {
$pass_answer = true;
break;
}
}
}

if( !$pass_answer ) $reg_error .= $lang['reg_err_25'];

} else $reg_error .= $lang['reg_err_25'];

}

f( $config['reg_question'] ) {


$tpl->set( '[question]', "" );
$tpl->set( '[/question]', "" );

$question = $db->super_query("SELECT id, question FROM " . PREFIX . "_question ORDER BY RAND() LIMIT 1");
$tpl->set( '{question}', htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES, $config['charset'] ) );

$_SESSION['question'] = $question['id'];

} else {

$tpl->set_block( "'\\[question\\](.*?)\\[/question\\]'si", "" );
$tpl->set( '{question}', "" );

}

дани мапов, Спасибо большое за ответ ! Но к сожалению, данное значение работает только для index.php?do=register, на других страницах значение доп. поля не передаёт в форму регистрации.

Наверное, Вы не так поняли меня. Мне нужны именно не конкретные вопросы чтобы выводились, а чтобы на главной странице сайта можно было зарегистрироваться (а не только когда пользователь находится в index.php?do=register), все значения кроме ответа на вопрос замечательно передаются, вот мне нужно чтобы и ответ передавался...

(т.е. если скопировать форму регистрации и заполнять её на главной (у меня она во всплывающем окне) то не передаётся значение только

<input type="text" name="question_answer" id="question_answer" placeholder="Введите ответ">
, если же я в этой же всплывающей форме регистрируюсь, но нахожусь на странице регистрации (index.php?do=register) - значение передаётся. Так вот, я хочу чтобы значение "question_answer" передавалось так же в форму регистрации как и "name, email, password1, password2" - они прекрасно передаются.

VizInit, большущее Вам человеческое спасибо ! Все работает на ура ! :)

Побольше бы таких как Вы ;) Приятного Вам вечера и еще раз спасибо за помощь!)

Пожалуйста, помогите, ведь есть знающие, всю голову сломал...

Спасибо, но не получается. Попробую немножко точнее описать.

Есть два класса:

<div class="register-block-hidden">содержимое 1</div>

<div class="login-block-hidden">содержимое 2</div>

Вызываются они посредством css+jquery:

<div class="register">Вызвать содержимое 1</div>

<div class="login">Вызвать содержимое 2</div>.

Нужно сделать так, чтобы нельзя было вызвать 2 блока сразу, т.е., если один открыт, другой должен был закрыт. Т.е. если открыт блок с "содержимое 1" и я нажимаю вызвать блок с "содержимым 2", блок с "содержимым 1" закрывался.

VizInit, Ваш код не работает, почему-то ссылка сразу пропадает при вызове функции, т.е. невозможно повторно вызвать блок.

1500р. (50 $) с переделкой шаблона под Ваши надобности. Сроки: 1-3 дня. Оплата по факту.

icq: 617081734

1 2345 6
Всего: 52