Header location php не работает

Header location php не работает

(1) Я загружаю свой веб-сайт на удаленный веб-сервер.

(2) Шаблонная система сайта настроена таким образом, что все страницы формируются путем отправки запросов с index.php url в index.php

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

(4) Перенаправление на следующую страницу выполняется путем создания header(‘location: next_page’) : header(‘location: next_page’)

(5) По какой-то причине перенаправление не выполняется. Вот как выглядит код:

РЕШИТЬ

Это было дело в том, что у вас есть пробел после ?> Где-то еще в коде. Это было показано мне после размещения следующих команд в верхней части кода:

Я хотел бы поблагодарить всех людей, которые пытались помочь.

Похоже, вы эхо-текст в браузере перед отправкой заголовка («location»). Вы не можете отправлять контент в свой браузер перед выполнением заголовка (), так как ваше эхо приведет к отправке заголовка. Прокомментируйте эти строки и посмотрите, работает ли это:

Теперь ваш заголовок будет отправлен, и вы будете перенаправлены.

добавьте этот код в первый код:

Вы можете попробовать использовать javascript для перенаправления страницы:

Является ли простой PHP-скрипт следующим:

Вы также должны убедиться, что путь кода с $path_choice != null и $form->is_connected() === true действительно принят, потому что ваши состояния ошибок не устанавливают HTTP-заголовки вообще.

Я вижу «destroy_session ()», вы используете session_start () где-то? Убедитесь, что контент NO (включая (cookie) сеанса) уже отправлен.

Советы по отладке: установите error_reporting (E_ALL) (включая E_NOTICE). Это даст вам строку, по которой отправляются заголовки.

Другие источники проблем: – BOM – дополнительные строки перед включением файла

Я считаю, вам нужно проверить ваш if-stack и убедиться, что вы попадаете в каждый из ваших циклов. Поместите эхо после каждого оператора if, чтобы удостовериться, что заголовок () даже оценивается, ваш цикл пролонгирован раньше, чем вы ожидаете.

Читайте также:  Diabetes management software на русском

Мой подозреваемый связан с использованием null и $ path_choice! = Null. Вы пробовали is_null () или isset (), поскольку они были специально разработаны для проверки, является ли переменная нулевой. Кроме того, операнд! == может работать и в этом случае, но я не уверен, если PHP имеет это.

Убедитесь, что перед php-файла у вас нет места. Это может помочь, если вы изменили тип кодировки файла на UTS_8 без спецификации и backspace непосредственно перед и убедитесь, что у вас нет session start() после чего-либо в файле. Это должно быть сразу после

Просто попробуйте это. это будет работать

вместо header("location: index.php");

Просто убедитесь, что перед вашим PHP-кодом у вас нет места, потому что это имеет значение.

Ну, если вы все попробуете, этот пример может помочь (HTML / PHP):

Убедитесь, что в начале кода не должно быть пробелов

Удалите пространство из первой строки так, что должно быть в первой строке.

header(‘Location: index.php’); не работает.
(Отправка всех полей формы на сервер с помощью ajax jQuery).
Как исправить?
Если есть ошибка при заполнении, то нормально работает


А если успех бывает вот так:

Как можно сделать нормально? Заранее спасибо!

Следующий оператор, похоже, не работает. Я также не получаю сообщений об ошибках.

Я использую file_put_contents() в файле search.php.

Есть ли способ выяснить, что может быть неправильным?

php header location

11 ответов

12 Webeng [2016-04-27 02:00:00]

Потому что:

+ — это оператор конкатенации для JavaScript, где . — аргумент конкатенации для php

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

Пока ваш ответ использует локальный путь к файлу: "Location: /home/shaliu/Projects/Nominatim. " .

Читайте также:  Focusrite scarlett solo usb драйвер

Вы можете использовать:

header("Location: http://www.example.com/search.php?q=".$query); exit();

Или если ваш файл search.php находится в корневом каталоге:

header("Location: /search.php?q=".$query); exit();

Это может помочь вам.

1 yergo [2016-05-11 11:07:00]

После фиксации + до . , как было сказано ранее @Webeng.

Если вы посещаете свою страницу, набрав /home/shaliu/Projects/Nominatim/website/index.php в своем браузере, заголовки вообще не будут работать, потому что вы находитесь не в веб-контексте, а в локальном контексте просмотра файлов.

Если вы посещаете его через http://localhost/Nominatim/index.php , вы попадете в веб-контекст, но ваш заголовок не будет работать, потому что вы технически отправляете перенаправление на путь http://localhost/home/shaliu/Projects/Nominatim/website/search.php , который, вероятно, не существует в этом месте. Вместо этого вы должны изменить его на: /search.php , если ваша папка website/ связана с http://localhost/ или что-то подходящее, зависит от вашей конфигурации environement.

использовать относительный путь.

измените это с помощью

В php для конкатенации используйте ".", "+" используется в javascript не в php

Сделайте правильный путь для файла

0 gmfm [2016-05-06 05:04:00]

header() используется для отправки HTTP-заголовков (http://php.net/manual/en/function.header.php). Похоже, вы пытаетесь получить доступ к php файлу, используя локальный путь к файлу, а не http (веб-адрес). "/home/shaliu/Projects/Nominatim/website/search.php" должен быть доступен через Интернет и этот веб-адрес должен использоваться в заголовке() (см. ответ @Purushotham).

0 illeas [2016-05-10 10:01:00]

Пожалуйста, попробуйте этот PHP-код. если вы используете заголовок в первом заголовке и местоположении php, тогда вопросительный знак вашего поиска получит идентификатор.

0 Ravi [2016-05-10 12:44:00]

Если вы используете

В этом случае ваше местоположение начинается с /, что означает, что домашняя папка (каталог) должна находиться внутри корневой папки сервера. Например, в качестве локального сервера, если мы рассматриваем XAMPP, домашняя папка должна находиться внутри C:xampphtdocs (в общем случае), и если мы рассмотрим WAMP, то домашняя папка должна находиться внутри www-папки.

Читайте также:  Digital to analog audio converter

Если ваша домашняя папка находится внутри папки, где находится ваша текущая страница, вы должны использовать

Нет/(требуется косая черта).

Во-вторых, вам нужно заменить+. для конкатенации строки.

SO, если ваша домашняя папка находится внутри корневого каталога сервера, вы должны пойти с

В противном случае вы должны пойти с

0 anka [2016-05-11 18:03:00]

Помимо очевидной проблемы конкатенации, которая уже была указана, похоже, что этот путь /home/shaliu/Projects/Nominatim/website/search.php — это путь *NIX ; с учетом шаблона /home/ , с которого начинается.

Если это так, и вы пытаетесь открыть файл за пределами корня веб-сервера, то, скорее всего, это проблема с разрешением. Перемещение вашего search.php в местоположение, доступное для процесса веб-сервера, и запуск chmod / chown в файле, который вы пытаетесь открыть процесс веб-сервера, может сортировать вас. Кроме того, вам может потребоваться указать, какую ОС вы используете, на случай, если вам также понадобится запустить chcon .

О, я бы сделал этот комментарий, но, похоже, у меня нет необходимой репутации для добавления комментариев.

Ссылка на основную публикацию
Adblock detector