Вот что получилось, как вижу, question_answer передаётся... но почему-то если с других страниц данную форму передавать, всеравно пишет "Введен неверный ответ на контрольный вопрос", если же быть на странице регистрации, и ту же форму заполнять (всплывающую, ту что и на других страницах), то все нормально. В чем может быть проблема ?
---------- Добавлено 03.12.2014 в 15:17 ----------
Нашел еще одну строчку, в register.php, отвечающую за контрольный вопрос:
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'])."'");
дани мапов, Спасибо большое за ответ ! Но к сожалению, данное значение работает только для index.php?do=register, на других страницах значение доп. поля не передаёт в форму регистрации.
Наверное, Вы не так поняли меня. Мне нужны именно не конкретные вопросы чтобы выводились, а чтобы на главной странице сайта можно было зарегистрироваться (а не только когда пользователь находится в index.php?do=register), все значения кроме ответа на вопрос замечательно передаются, вот мне нужно чтобы и ответ передавался...
(т.е. если скопировать форму регистрации и заполнять её на главной (у меня она во всплывающем окне) то не передаётся значение только
, если же я в этой же всплывающей форме регистрируюсь, но нахожусь на странице регистрации (index.php?do=register) - значение передаётся. Так вот, я хочу чтобы значение "question_answer" передавалось так же в форму регистрации как и "name, email, password1, password2" - они прекрасно передаются.
Нужно сделать так, чтобы нельзя было вызвать 2 блока сразу, т.е., если один открыт, другой должен был закрыт. Т.е. если открыт блок с "содержимое 1" и я нажимаю вызвать блок с "содержимым 2", блок с "содержимым 1" закрывался.
VizInit, Ваш код не работает, почему-то ссылка сразу пропадает при вызове функции, т.е. невозможно повторно вызвать блок.
Вот что получилось, как вижу, question_answer передаётся... но почему-то если с других страниц данную форму передавать, всеравно пишет "Введен неверный ответ на контрольный вопрос", если же быть на странице регистрации, и ту же форму заполнять (всплывающую, ту что и на других страницах), то все нормально. В чем может быть проблема ?
---------- Добавлено 03.12.2014 в 15:17 ----------
Нашел еще одну строчку, в register.php, отвечающую за контрольный вопрос:
$stronghash = sha1(DBHOST . DBNAME . SECURE_AUTH_KEY);
if( $config['registration_type'] ) {
много разного текста не касающегося question...
$_SESSION['question'] = false;
много разного текста не касающегося question...
}
}
А теперь самое главное: что вы имеете в виду под "на других страницах значение доп. поля не передаёт в форму регистрации"? Чем именно вы это проверяли? Не могли бы вы воткнуть "print_r($_REQUEST); die;" в шапку файла регистрации и выложить сюда результаты двух тестов на регистрацию с главной страницы и со страницы обычной регистрации?
Добавил в шапку файла, никакой инфо о переменной не увидел, ни в исходном коде страницы, ни наглядно :(
Mad_Man, готово)
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), все значения кроме ответа на вопрос замечательно передаются, вот мне нужно чтобы и ответ передавался...
(т.е. если скопировать форму регистрации и заполнять её на главной (у меня она во всплывающем окне) то не передаётся значение только
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