Intereting Posts
Laravel: удалить публикацию из URL-адреса, одновременно сохраняя отдельные проекты Использование цикла внутри функции Получение результатов запроса из двух таблиц db, даже если вторая таблица не имеет соответствующих записей Зачем использовать PHP OOP над базовыми функциями и когда? Можно ли планировать запуск PHP-скрипта в определенное время или по истечении определенного времени? Отобразить виджет внутри CGridView в Yii Организация конкурса по программированию – компиляция и выполнение Howto Как отключить cookie сеанса PHP? Отправлять данные от android на сервер через JSON Некорректное числовое число, которое встречается – Невозможно воспроизвести выполняется условие после && всегда оценивается Область действия функции PHP Найдите подходящие открытые / закрытые скобки Как игнорировать случай при анализе с помощью simplexml? Проблема с контентом CodeIgniter Multi Application htaccess

header ('location: ..') не работает

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

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

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

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

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

 $error = ""; if(isset($_POST['index_choice'])){ $path_choice = isset($_POST['path']) ? $_POST['path'] : NULL; //echo $path_choice; //echo $page_inc; //nothing after this if($path_choice != null){ if($form->is_connected()){ //if($path_choice != "" || $path_choice != NULL){ if($path_choice == "new"){ //header('location: /login.php'); //header('location: page/login'); header('location: /index.php?page=login'); exit(); } else{ //header('location: /amend.php'); //header('location: page/amend'); header('location: /index.php?page=amend'); exit(); } //} /** else{ //destroy_session(); $error = "You haven't selected a path. Please choose a path"; } * */ } else{ //destroy_session(); $error = "Problems with connecting to the database"; } }else{ //destroy_session(); $error = "You have not indicated your choice"; } } 

РЕШИТЬ

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

  error_reporting(E_ALL); ini_set('display_errors', 'On'); 

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

Related of "header ('location: ..') не работает"

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

 // echo $path_choice; // echo $page_inc; 

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

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

 <?php ob_start(); ?> 

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

 echo '<script>window.location = "'.$url.'";</script>'; 

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

 <?php header('Location: /index.php?page=login'); ?> 

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

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

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

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

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

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

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

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

 echo "<script type='text/javascript'> window.location='index.php'; </script>"; 

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

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

Например

 <?php some code this is the correct way ?> -------------- <?php some code this is the incorrect way the space above matters ?> 

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

 <?php header("HTTP/1.0 404 Not Found"); echo '<html> <head> <meta http-equiv="Refresh" content="0;url=http://www.url.com/index.php?code=404" /> </head><body></body> </html>'; ?> 

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

Например:

 ------whitespace---- <?php . . . . ?> 

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