Получение переменной по ссылке PHP

1

У меня есть два файла, один из которых называется 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, а не "Доброе утро". Одна вещь, которая пришла на ум, состоит в том, что вы не можете устанавливать переменные, когда используете заголовок, поэтому, если это случай, сообщите мне. Спасибо.

Теги:
hyperlink
variables
header
get

3 ответа

6
Лучший ответ

Переменные не обрабатываются в одинарных кавычках

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\"";
  • 0
    Вы всегда так хорошо структурируете свои вопросы, что теперь я буду называть вашего профессора Фредом :-) ( ps, отличный ответ! )
  • 0
    @Darren хе-хе Спасибо, Даррен, ура
2

использование

header("Location:test4.php?text=".$text);
  • 1
    пожалуйста, включите хотя бы одну строку, чтобы объяснить, почему,
  • 0
    одинарная кавычка не анализирует переменные, поэтому вам нужно вывести ее из кавычки.
Показать ещё 1 комментарий
0

В 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>";

вместо этого;)

  • 0
    О да, я понял.....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню