Перенаправление по заголовку в php

Я использую wampserver для базы данных php и mysql. в моем php-файле после выполнения некоторого кода для вставки в базу данных mysql я хочу перенаправить браузер на другую html-страницу, в которой есть php-код. Эта страница нуждается в значении идентификатора переменной для извлечения данных из моей базы данных sql. Поэтому я отправляю значение идентификатора по коду ниже в конце кода php.

header('Location: lostItem.php?id=$id');

Полученный файл имеет приведенный ниже код для получения значения идентификатора.

$id= $_GET['id'];

Но оказывается, что значение id не передано, т.е. принимающий файл показывает url :

http://localhost/Lost%20and%20Found/lostItem.php?id=$id 

вместо того, чтобы показывать

http://localhost/Lost%20and%20Found/lostItem.php?id=11

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

echo "<a class='listOfItems' href='lostItem.php?id=$id'>";
echo $item;
echo "</a>";

И это прекрасно работает. Но когда я пытаюсь сделать то же самое с помощью заголовка, это не работает. Прежде чем использовать заголовок, я убедился, что переменная $id имеет правильное целочисленное значение. Но он не отправляет это значение с помощью заголовка.

Разве данные не могут быть отправлены этим методом с использованием заголовка? Если это так, пожалуйста, предложите альтернативный метод.


person dc95    schedule 11.01.2014    source источник
comment
Я думаю, что вы должны использовать ajax для передачи переменной на следующую страницу. И вы можете перенаправить через javascript на следующую страницу, на которую хотите перейти.   -  person Ashoka    schedule 11.01.2014
comment
нет, ajax не требуется   -  person    schedule 11.01.2014


Ответы (3)


базовая нотация php, переменные в одинарных кавычках не интерпретируются

header("Location: lostItem.php?id=$id");

чтобы быть строгим, местоположение должно использовать полный URI, а не относительный

header("Location: http://www.example.com/lostItem.php?id=$id");
person Community    schedule 11.01.2014

используйте фигурную скобку для переменной, когда вы использовали значение переменной в строке, попробуйте это

header("Location: lostItem.php?id={$id}");
person Girish    schedule 11.01.2014

Одинарные кавычки не обрабатывают переменные, PHP игнорирует все ваши переменные, поэтому вам нужно объединить переменные с помощью оператора объединения (.)

header('Location: lostItem.php?id='.$id); // fast than double quotes

or

header("Location: lostItem.php?id=$id");
person iLaYa ツ    schedule 11.01.2014