Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 16.06.2022
Сообщений: 13
1

Не работает оператор header location в php

16.06.2022, 15:50. Показов 1270. Ответов 13

Author24 — интернет-сервис помощи студентам
здравствуйте, возникла проблема с оператором перехода header
писал вручную форму с регистрацией, всё отлично работало. потом сделал сайт на конструкторе Nicepage (там всё конвертируется в html, css и js), решил использовать точно такой же метод (метод post), но ничего не работает. в базу данных записываются данные, а переходить не хочет никак. в первом и во втором случаях использовал header в конце кода, перед закрывающимся тегом, но почему-то в первом случае, когда я писал вручную, работало, а щас - нет. может ли это быть какой-то блокировкой перехода, вшитый в шаблон? я проверил через поиск (Ctrl+F) все css файлы в папке, и нигде нет блокирующих свойств по типу pointer-events: none;
в чем может быть дело?

Добавлено через 1 час 30 минут
вот форма, которую я писал, безклассов и тд, и на нем всё работает
HTML5
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="POST" id="form" action="signup.php" style="padding: 0px;">
        <div>
          <label for="name" pattern="^[А-Яа-яЁё]{2,10}$" class="u-label">Имя</label>
          <input type="text" placeholder="Введите Ваше имя" id="name" name="name" required="required">
        </div>
        <div>
          <label for="login" class="u-label">Логин</label>
          <input type="text" placeholder="Введите логин" id="login" name="login" required="required">
        </div>
        <div>
          <label for="password" class="u-label">Пароль</label>
          <input type="password" id="password" name="password" required="required">
        </div>
        <div>
          <button type="submit">Зарегистрироваться</button>
        </div>
      </form>
</body>
</html>
PHP
1
2
3
4
<?php
    echo $_POST;
    header('location: index.php');
?>
и форма, в которойй не работает это:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            <form method="POST" id="form" class="u-clearfix u-form-spacing-15 u-form-vertical u-inner-form" action="signup.php" style="padding: 0px;">
              <div class="u-form-group u-form-name">
                <label for="name" pattern="^[А-Яа-яЁё]{2,10}$" class="u-label">Имя</label>
                <input type="text" placeholder="Введите Ваше имя" id="name" name="name" class="u-border-1 u-border-grey-10 u-input u-input-rectangle u-radius-10 u-white u-input-1 _req" required="required">
              </div>
              <div class="u-form-email u-form-group">
                <label for="login" class="u-label">Логин</label>
                <input type="text" placeholder="Введите логин" id="login" name="login" class="u-border-1 u-border-grey-10 u-input u-input-rectangle u-radius-10 u-white u-input-2 _req" required="required">
              </div>
              <div class="u-form-group u-form-group-3">
                <label for="password" class="u-label">Пароль</label>
                <input type="password" id="password" name="password" class="u-border-1 u-border-grey-10 u-input u-input-rectangle u-radius-10 u-white u-input-3 _req password" placeholder="Введите пароль" required="required">
              </div>
              <div class="u-align-right u-form-group u-form-submit">
                <button type="submit" class="u-active-custom-color-3 u-border-1 u-border-active-custom-color-3 u-border-custom-color-1 u-border-hover-custom-color-2 u-btn u-btn-submit u-button-style u-custom-color-1 u-hover-custom-color-2 u-btn-1" value="submit" name="dosignup" class="u-form-control-hidden">Зарегистрироваться</button>
              </div>
            </form>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2022, 15:50
Ответы с готовыми решениями:

Почему в винде не работает header('Location: index.php'); ?
Почему в винде не работает header('Location: index.php'); ?

Warning: Cannot modify header information - headers already sent в header('Location: /index.php');
Warning: Cannot modify header information - headers already sent by (output started at...

Не работает header(Location)
Всем привет, у меня на странице есть форма и в это же странице идет ее обработка, при нажатии на...

Не работает header('Location: /');
Добрый день, пишу регистрацию с авторизацией. Задача, после авторизации пользователя, чтобы его...

13
33 / 28 / 6
Регистрация: 24.03.2020
Сообщений: 219
16.06.2022, 15:58 2
Здравствуйте, чтобы header сработал, нужно дать скрипту команду завершиться, тогда он перебросит на другую страницу:
PHP
1
2
3
4
5
<?php
echo $_POST;
header('location: index.php');
exit(); //!! <-- закроет скрипт и отправит header
?>
0
0 / 0 / 0
Регистрация: 16.06.2022
Сообщений: 13
16.06.2022, 16:21  [ТС] 3
безрезультатно... даже не обновляется страница

Добавлено через 13 минут
я решил отключить скрипты js (два скрипта подключенных), и все работает. значит дело в js, и теперь вопрос, как мне отключить отправку формы по скрипту? можно ли написать какой-нибудь маленький скрипт в самом файле с формой, чтоб блокировать эту функцию? а то в подключенных файлах всё в одну строку написано, вообще не понять как с этим работать
0
33 / 28 / 6
Регистрация: 24.03.2020
Сообщений: 219
16.06.2022, 16:25 4
Выложите страницы целиком, потому что кусками я не понимаю, что куда отправляется.

Цитата Сообщение от TimurShikh Посмотреть сообщение
безрезультатно... даже не обновляется страница
Значит, кто-то блокирует отправку, посмотрите на исполняемые скрипты (может где-то в скриптах js используется preventDefault(), например) и классы (которые обычно отвечают только за стилистику и не более, хотя второй класс class="u-form-control-hidden" на кнопке мне не нравится).
0
Модератор
Эксперт JSЭксперт HTML/CSS
2820 / 1869 / 804
Регистрация: 13.03.2010
Сообщений: 6,097
16.06.2022, 16:26 5
Цитата Сообщение от Komandor_Yan Посмотреть сообщение
чтобы header сработал, нужно дать скрипту команду завершиться
Надеюсь, вы в курсе, что при исполнении вашего кода будет ошибка "headers already sent"? Никакого вывода не должно быть до хедеров.
0
33 / 28 / 6
Регистрация: 24.03.2020
Сообщений: 219
16.06.2022, 16:28 6
Цитата Сообщение от TimurShikh Посмотреть сообщение
я решил отключить скрипты js (два скрипта подключенных), и все работает. значит дело в js, и теперь вопрос, как мне отключить отправку формы по скрипту? можно ли написать какой-нибудь маленький скрипт в самом файле с формой, чтоб блокировать эту функцию? а то в подключенных файлах всё в одну строку написано, вообще не понять как с этим работать
Я Вас не понимаю, Вам с header php-скрипта помогать или с чем??...
То, что скрипт написан в строку, это всего-лишь его минификация, работа от этого не нарушится, для удобства можно поискать, чем разложить скрипт к нормальному виду.

Добавлено через 43 секунды
Цитата Сообщение от gogolik Посмотреть сообщение
Надеюсь, вы в курсе, что при исполнении вашего кода будет ошибка "headers already sent"? Никакого вывода не должно быть до хедеров.
Само собой, я дополнил код автора ТЗ
0
Модератор
Эксперт JSЭксперт HTML/CSS
2820 / 1869 / 804
Регистрация: 13.03.2010
Сообщений: 6,097
16.06.2022, 16:31 7
Цитата Сообщение от Komandor_Yan Посмотреть сообщение
Само собой, я дополнил код автора ТЗ
Дополнили заведомо нерабочим кодом? Оригинально.

TimurShikh, как я уже сказал, до вызова header не должно быть никакого вывода. Что означает предупреждение "headers already sent"
0
0 / 0 / 0
Регистрация: 16.06.2022
Сообщений: 13
16.06.2022, 16:37  [ТС] 8
я думал дело в php, а оказалось, что в js-файлах... нельзя как-то проигнорировать функцию путем скрипта маленького, которая управляет кнопкой?

Добавлено через 4 минуты
Цитата Сообщение от Komandor_Yan Посмотреть сообщение
посмотрите на исполняемые скрипты (может где-то в скриптах js используется preventDefault(), например)
да, в файле есть 38 таких функций, и все с какими-то буквами, по типу t., a., e. и тд
0
33 / 28 / 6
Регистрация: 24.03.2020
Сообщений: 219
16.06.2022, 16:40 9
Цитата Сообщение от gogolik Посмотреть сообщение
Дополнили заведомо нерабочим кодом? Оригинально.
Не нужно язвить.

Не по теме:

Код был нерабочим и до меня.
А echo $_POST я и сам использую для отладки получения скриптом данных. Только потом комментирую строку.


Проблема ТЗ повернулась вообще в другую степь.

Добавлено через 2 минуты
TimurShikh, я не знаю, за что отвечают ваши скрипты, поэтому ответить вам про "проигнорировать функцию" не могу.
0
0 / 0 / 0
Регистрация: 16.06.2022
Сообщений: 13
16.06.2022, 18:06  [ТС] 10
Цитата Сообщение от Komandor_Yan Посмотреть сообщение
я не знаю, за что отвечают ваши скрипты
мне кажется можно просто все функции этих кнопок отключить в js, у меня все равно одна кнопка, и та не меняется с отключенными скриптами
0
33 / 28 / 6
Регистрация: 24.03.2020
Сообщений: 219
16.06.2022, 18:09 11
TimurShikh, вполне, тогда preventDefault-ы не будут беспокоить форму зазря. Я знаю, что их используют для форм при сочетании с ajax или валидацией.
0
0 / 0 / 0
Регистрация: 16.06.2022
Сообщений: 13
16.06.2022, 18:23  [ТС] 12
Цитата Сообщение от Komandor_Yan Посмотреть сообщение
вполне
а какой-то другой функцией отключить эти функции (preventDefault)? а то я копаюсь в этом минифицированном коде и не понимаю где начало а где конец((

Добавлено через 2 минуты
не знаю, может оператор есть какой-то,по типу ignore(function);(грубо говоря)
0
gogolik
16.06.2022, 18:50
  #13
 Комментарий модератора 
Обсуждение версии про js: Скрипт, который игнорирует определенную функцию на js
0
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
16.06.2022, 23:07 14
TimurShikh, в двух словах - вот этот вот блок кода
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
<?php
    
    header('location: index.php');
 
?>
должен быть прописан или в самом начале php-файла, или же в самом начале php-файла должен быть вызов функции буферизации вывода ob_start(); И уже после этого блока php-кода должен быть html. А судя по вашему варианту, у вас наоборот html вначале.
0
16.06.2022, 23:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2022, 23:07
Помогаю со студенческими работами здесь

Не работает Header location
Помогите сделать такую схему: Если существует $_SESSION то выводим следующий html, если нет, то...

Http и php header("Location: .")
Почему в php файле отправив header(&quot;Location: https://www.google.com.ua/&quot;); такой заголовок,...

Почему не работает перенаправление header("Location: ")? выводит только его html
Добрый день, у меня такая проблема: есть простая страничка, я убрал оттуда все лишнее и оставил...

Не работает header("location: ".$page);
Здравствуйте! столкнулась с такой проблемой. пишу на работе один сайт, пока на локалке. все...

Header("Location: ") не работает
у меня ввыводится ошибка Warning: Cannot modify header information - headers already sent by...

Header location
Здравстуйте есть log_in.php 1)header(&quot;Location:main.php&quot;); - отправляет на log_in.php(как...

Header location
Доступные темы перечитал. Вывода перед header нет. Один и тот-же код работает в IE и Mozilla В...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru