这个简短的PHP代码的语法问题

时间:2009-12-31 14:27:04

标签: php

如何将$location变量写入标题行?现在它什么都没找到......空白地址吧......

这是我到目前为止所拥有的:

  $location='/ad?ad_id='.$id_nr;
  Header( "Location: $location" );
顺便说一句,这是在我的电脑,虚拟服务器上,地址是绝对的!

没有?ad_id=.$id_nr部分就可以了!

4 个答案:

答案 0 :(得分:3)

好吧,header()函数是header而不是Headerthe URI in location headers must be absolute,而不是相对的。

答案 1 :(得分:0)

Location标头必须是完整格式的绝对地址,以http://或其他协议(如https)开头。您无法指定相对URL。

试试这个,将mysite.com替换为您网站的根网址:

<?php

$location='/ad?ad_id='.$id_nr;
Header( "Location: http://www.mysite.com/$location" );
// or, on your local machine
Header( "Location: http://localhost/$location" );

?>

您可能会考虑最终编写一个更有用的功能来为您完成工作:

<?php

function redirect_to($location, $halt = true) {
  $root = $_SERVER['HTTP_HOST'];
  header("Location: $root/$location");
  if ($halt)
    exit;
}

?>

答案 2 :(得分:0)

使用$ _SERVER ['HTTP_HOST']获取完整的网址。

不要忘记在标题调用后放置一个退出。脚本不会自动停止,你必须告诉它停止。

答案 3 :(得分:-1)

在你的位置变量中,我没有看到有效的文件扩展名是html或php。您确定没有文件的扩展名吗?

$location='/ad?ad_id='.$id_nr;
Header( "Location: $location" );