Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для Pinnokio
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 110

Редирект после регистрации

03.03.2017, 13:19. Показов 2705. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Нужна помощь в перенаправлении на страничку завершения регистрации после отправки формы и затем с временной задержкой - на главную.
Как мне объяснили в разделе PHP существует "проблема заголовков", не позволяющая сделать это с помощью функции header().
В поисках альтернативного решения где-то в сети наткнулся на предложенное решение в виде JS скрипта. Попробовал после php конструкции, завершающей запрос к БД разместить скрипт и посмотреть , а каков же будет результат?
JavaScript
1
2
3
<script>
document.location.href = "index.php";
</script>
Результатом стало то, что после перезагрузки страницы с формой скрипт выполняется и сразу, не дожидаясь никаких действий с формой, перебрасывает на главную страницу.
Положительный вывод в том, что он работает. Отрицательный в том, что работает сам по себе, не обращая на форму никакого внимания.

Существует ли возможность поставить данный скрипт "в стойло"? Т.е. , видимо, дописать какой-то сценарий, по которому он будет выполняться только после заполнения формы и отправки данных из нее в БД mysql?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2017, 13:19
Ответы с готовыми решениями:

Как не делать редирект после регистрации
Добрый день у меня сайт на wordpress, делаю регистрацию пользователей через Theme my login. Так вот после регистрации происходит...

Как сделать редирект на главную после регистрации?
Помогите с функцией редиректа. Есть код регистрации, в нем не работает функция редиректа на главную страницу, то есть нужно чтобы после...

Редирект авторизованного пользователя со страницы регистрации
Помогите пожалуйста, нужно чтобы сразу после регистрации пользователя перекидывало уже авторизованным на секретную страницу intropage.php ...

7
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2017, 13:35
Цитата Сообщение от Pinnokio Посмотреть сообщение
существует "проблема заголовков", не позволяющая сделать это с помощью функции header().
Пропишите в начале документа ob_start() и проблема решится с вероятностью успеха 95% +-1-2%.
0
 Аватар для Pinnokio
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 110
03.03.2017, 14:22  [ТС]
прописал
PHP
1
2
3
<?php
ob_start()
?>
на скрипт это никак не повлияло - он живет своей жизнью.
Попытка использовать
PHP
1
2
header('Location: index.php');
        exit();
после закрытия соединения с БД тоже оказалась безуспешной: никакого перенаправления не случилось, остался на странице с формой. Пока больше смотрю в сторону JS сценария, но сам его не сотворю
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
03.03.2017, 14:57
Цитата Сообщение от Pinnokio Посмотреть сообщение
Результатом стало то, что после перезагрузки страницы с формой скрипт выполняется и сразу, не дожидаясь никаких действий с формой
Так и должно быть.
Браузер, натыкаясь на теги <script> в разметке, тут же исполняет приведённый в них код. Вот ваш скрипт и выполнился.
На вашем месте, я бы сабмитил форму регистрации стандартными средствами (как обычно)
HTML5
1
2
3
4
<form action="/register.php">
  <!-- Инпуты формы -->
  <input type="submit">
</form>
А в register.php засунул скрипт, выполняющий переход на главную с задержкой:
JavaScript
1
2
3
setTimeout(function() {
  document.location.href = "/index.php";
}, 5000); // Задержка 5 секунд
0
 Аватар для Pinnokio
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 110
03.03.2017, 16:23  [ТС]
дело в том, что у меня форма и обработчик в одном файле и соот-но со всеми возникающими проблемами надо разбираться в одном месте. Вот кусок кода с формой
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<form method="post" action="regprivate.php">    
            <h2><center>Учетные данные пользователя ( частного лица )</center></h2><br /><br />
            <label>Имя учетной записи:</label> 
            <input type="text" name="login" size="25" required><br /><br />
            <label>Пароль:</label> 
            <input type="password" name="pass1" size="25" required><br /><br />
            <label>Пароль еще раз:</label> 
            <input type="password" name="pass2" size="25" required><br /><br />
            <h2><center>Персональная информация</center></h2><br /><br />
            <label>Имя<span class="star">*</span>:</label> 
            <input type="text" name="first_name" size="25" required><br /><br />
            <label>Фамилия<span class="star">*</span>:</label> 
            <input type="text" name="last_name" size="25" required><br /><br />
            <label>Личный код<span class="star">*</span>:</label>  
            <input type="text" name="code" size="25" required><br /><br />
            <label>Адрес электронной почты<span class="star">*</span>:</label>
            <input type="text" name="email" size="25" required><br /><br />
            <label>Телефон +(372)<span class="star">*</span>:</label> 
            <input type="text" name="phone" size="25" required><br /><br />
            <input type="checkbox" name="checkme" id="agree" />&emsp; Я прочитал(а) и полностью согласен(а) с <a href="agreement.php" target="_blank">условиями пользовательского соглашения.</a><br /><br />
            
            <input type="submit" name="regbut" id="register" value="Зарегистрироваться" />
            </form><br />
            
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
                    
        <script type="text/javascript">
            $(document).ready(function(){
 
              $('#register').prop('disabled', true);
 
              $('#agree').change(function() {
 
                  $('#register').prop('disabled', function(i, val) {
                    return !val;
                  })
              });
            })
        </script>
        
        
            
<?php
 
    if(isset($_POST['regbut']))
{   
    $login = strip_tags(trim($_POST['login']));
    $pass1 = strip_tags(trim($_POST['pass1']));
    $pass2 = strip_tags(trim($_POST['pass2']));
    $first_name = strip_tags(trim($_POST['first_name']));
    $last_name = strip_tags(trim($_POST['last_name']));
    $code = strip_tags(trim($_POST['code']));
    $email = strip_tags(trim($_POST['email']));
    $phone = strip_tags(trim($_POST['phone']));
    
    
    mysqli_query($link, "
                     INSERT INTO regprivate (login, pass1, pass2, first_name, last_name, code, email, phone) VALUES ('$login', '$pass1', '$pass2', '$first_name', '$last_name', '$code', '$email', '$phone') 
    ")  or die(mysqli_error($link));
        mysqli_close($link);
 
  
}
?>
Все работает нормально, но вот только после отправки формы я остаюсь на странице с формой, а хотелось бы, чтобы было перенаправление на какую-то другую, ну, например, на success.php, где пользователь бы увидел: "Регистрация прошла успешно. Проверьте свою почту и подтвердите регистрацию." А затем уже с этой страницы с временной задержкой он бы был переброшен на страницу авторизации.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
03.03.2017, 17:14
Ну так перенесите свой обработчик из исходного файла в начало файла success.php В чём проблема-то?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.03.2017, 18:23
Засуньте переход в событие сабмита формы.
0
 Аватар для Pinnokio
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 110
03.03.2017, 18:36  [ТС]
Проблема только в голове
Да, сделал, получилось, работает, но остались вопросы.
Что сделал? Взял php конструкцию и целиком перенес во вновь созданный файл success.php, сделав его обработчиком формы ( прописал в форме action="success.php"). Но вот почему, когда помещаешь код обработки формы в середину кода нового файла, в котором помимо него есть еще div(ы), внутри которых require_once php файлы, то все, что оказывается ниже - не видно. Пришлось этот код поставить в самый конец ( перед закрывающим тегом body) для того, чтобы на странице полностью отображался весь код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2017, 18:36
Помогаю со студенческими работами здесь

После регистрации крокозяблики
Вообщем все было нормально, да и вроде регается тоже нормально, т.е, как нормально, регистрация проходит, но после нажатия отправить,...

Действие после регистрации
Добрый день. Реализовал регистрацию на сайт с отправкой сообщения на e-mail. Пока пользователь не подтвердит регистрацию - доступ на...

Редирект после авторизации
Всем привет. Я новичок в этом деле и хочу разобраться, почему после авторизации страница с входом остается. Для представления, у меня есть...

Редирект после ajax
Добрый день. Есть код: $.ajax( { url: 'php/logout.php', type: 'post', ...

Редирект после авторизации
Всем добрый вечер. Собственно нужен совет знающих. У меня есть подобие сайта, с авторизацией\регистрацией, мне нужно теперь сделать так,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru