У меня есть два файла, один из которых называется test3.php, а другой - test4.php. Я пытаюсь повторить переменную в ссылке файла test4.php, но она повторяет неожиданные результаты. Взгляни, пожалуйста.
В файле test3.php:
<?php
$text = "Good morning.";
header('Location:test4.php?text=$text');
?>
В файле test4.php:
<?php
$text = $_GET['text'];
echo "$text";
?>
Ожидаемый результат эха:
"Good morning."
Фактический результат эха:
$text
Я не понимаю, почему он повторяет $ text, а не "Доброе утро". Одна вещь, которая пришла на ум, состоит в том, что вы не можете устанавливать переменные, когда используете заголовок, поэтому, если это случай, сообщите мне. Спасибо.
Переменные не обрабатываются в одинарных кавычках
header('Location:test4.php?text=$text');
поэтому вам нужно использовать двойные кавычки
header("Location:test4.php?text=$text");
Рекомендации:
Кроме того, лучше добавить exit;
после заголовка, чтобы остановить дальнейшее выполнение, если у вас больше кода ниже (или решите в будущем).
и используя полный вызов http://
, согласно руководству
<?php
header("Location: http://www.example.com/"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
Сноски, о заголовке и в соответствии с руководством:
Помните, что header() должен быть вызван до отправки любого фактического результата либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP. Очень распространенная ошибка для чтения кода с включением или требованием, функциями или другой функцией доступа к файлам, а также пробелы или пустые строки, которые выводятся перед вызовом header(). Та же проблема существует при использовании одного файла PHP/HTML.
Ожидаемый результат эха:
"Good morning."
Если вы хотите повторить то, что "Good morning."
имея текст в двойных кавычках, вам нужно будет изменить следующее в файле test4.php:
echo "$text";
к, и избегая "
использования \
echo "\"$text\"";
использование
header("Location:test4.php?text=".$text);
В test4.php:
<?php
$text = $_GET['text'];
echo "$text";
?>
Когда вы цитируете "$ text", вы эхом отдаете строку af. То, что вы хотите сделать, - это echo the variable: $ text.
Так:
<?php
$text = $_GET['text'];
echo $text;
?>
... Без котировок.. :)
А также: header ('Location: test4.php? Text = $ text'); это сука, если вы используете ее под большим количеством кода...
Устранитесь от некоторых проблем и используйте:
echo "<script type='text/javascript'>window.location.href = 'test4.php?text=".$text."';</script>";
вместо этого;)
echo $text
через php.net/echo