0

例如,这是我的 PHP 代码:

<?php

if($country_code == 'US')
{
        header('Location: http://www.test.com');
}

else 
{
        header('Location: http://www.test.com/');
}

?>

我正在尝试使用 Javascript 代码进行跟踪,它必须位于</body>标签之上。

我尝试了将PHP代码与结合的不同方法HTML,我尝试将 HTML 单独放在下面的PHP一个示例中:

<html>
<head></head>
<body>
    <?php

     ?>
<script></script>
</body>
</html>

我得到的最远的是,它跟踪了点击,但它没有重定向给我这个错误:

`Warning: Cannot modify header information - headers already sent by`

将不胜感激任何建议和帮助,谢谢!

4

5 回答 5

1

在输出任何内容之前,将 php 重定向代码放在文档的开头。检查标记之后和?>标记之前的空格,<?php因为这些将被打印出来并发送响应标头,因此您将无法修改标头以进行重定向。

于 2012-12-16T15:01:12.243 回答
0
<?php
if($country_code === 'US'){

   echo "<script> window.location.href='http://www.test.com1'</script>";

}
else{

   echo "<script>  window.location.href='http://www.test.com2/'</script>";

 }

?>
于 2012-12-17T14:28:59.183 回答
0

您必须尝试以下方法进行跟踪:

<?php

if($country_code == 'US')
{
        header('Location: http://www.test.com/?us=yes');
}

else 
{
        header('Location: http://www.test.com/?us=no');
}

?>

然后在您的索引页面中检查 us 参数的值。您还应该注意,在标头函数之前不应打印任何输出以使警告无效:

Warning: Cannot modify header information - headers already sent by

于 2012-12-16T14:57:52.367 回答
0

问题是 PHP 在 JavaScript 之前运行。因此,您需要在 JavaScript 中获取 PHP 变量。

<?php
// your normal code here, like connection to DB
?>

<script>var test = <?php> echo $thatVariable; <?> </script>
于 2012-12-16T15:23:47.053 回答
0

您可能不会在 php.ini 的 header() 标记之前向客户端发送输出。因此,您可以生成一个重定向页面,该页面通过 js 获取国家信息并将其发送到 php(例如使用表单提交)。之后,您可以通过 php header() 重定向到相应页面

于 2012-12-16T15:30:35.023 回答