从链接PHP

时间:2015-05-26 01:32:39

标签: php variables hyperlink get header

我有两个文件,一个名为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,而不是“早上好”。我想到的一件事是,当你使用标题时,你实际上无法设置变量,所以如果是这种情况请告诉我。谢谢。

3 个答案:

答案 0 :(得分: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;
?>

脚注,关于标题,并根据手册:

  

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。

  • 但是你写了,我正在使用它:
  

预期回音结果:

"Good morning."

如果你想只回显"Good morning."文本用双引号,那么你需要在test4.php文件中更改以下内容:

echo "$text";

to,并使用"

转义\
echo "\"$text\"";

答案 1 :(得分:2)

使用

header("Location:test4.php?text=".$text);

答案 2 :(得分:-1)

在test4.php中:

<?php

$text = $_GET['text'];

echo "$text";

?>

当您引用&#34; $ text&#34;时,您正在回显af字符串。 你想要做的是回显变量:$ text。

所以:

<?php

$text = $_GET['text'];

echo $text;

 ?>

......没有引号.. :))

还有:标题(&#39;位置:test4.php?text = $ text&#39;);如果你在很多代码下面使用它是一个婊子...

保护自己有些麻烦,并使用:

echo "<script type='text/javascript'>window.location.href = 'test4.php?text=".$text."';</script>";

代替;)