-1

我尝试在网站上搜索“警告:无法修改标头信息 - 标头已由/home/zenithda/public_html/www.thanow.com/index.php:12 中的 /home/zenithda/public_html/ www.thanow.com/index.php 第 52 行。

我查看了其他示例,但找不到与我的问题相似的示例。我正在为我的网站的移动版本运行移动重定向脚本。我还有一个 header.php 和 footer.php 在我的包含文件夹中运行。但是,当我尝试通过我的 android 访问我的网站时,我收到了上述警告。有人试图检查他们的 iPhone,同样的事情发生了。在警告下方,将显示该站点的桌面版本。在我的 index.php 中,这是直接显示在我的第一个命令上方的代码(这个论坛不会让我正确显示此代码之前的内容,所以,这里有什么代码“!Doctype Html,大约三行!如果ie7,8,9 行,一个 html 头,一些 meta charset="utf-8" 标题和元描述和关键字。ALSO = PHP 命令前没有空格。)

<?php


  //Load the Mobile Detection library
  include("js/mobiledetect.php");

  //In this simple example, we'll store the alternate home page file names.
  $iphoneTierHomePage = 'mobile/index.html';
  $genericMobileDeviceHomePage = 'mobile/index.html';


  //Instantiate the object to do our testing with.
  $uagent_obj = new uagent_info();


  //This is a common mobile detection scenario...
  // First, detect iPhone tier devices, like iPod Touches, Android, WebOS, etc. 
  //    Send them to the nice touch-optimized page. 
  //    These often have rich CSS and advanced but mobile-friendly JavaScript functionality and no Flash.
  // Second, detect any other mobile device. Send them to the basic mobile pages, with light CSS and no JavaScript.
  //    Some (often older) touch devices might be included in this bunch, which otherwise includes feature phones.
  //    It's a Best Practice to include an alternate web page for less-capable mobile devices. 
  // Finally, assume anything else not caught by these filters is a desktop PC-class device. 
  //    Send them to your regular home page which may include large pictures, lots of JS, Flash, etc.. 
  //
  // NOTE: If you wanted an iPad-class tablet-optimized web site, too, then you should FIRST do a 
  //    device detection using the DetectTierTablet() method. Then detect for iPhone tier, and so on. 


  //In this simple example, we simply re-route depending on which type of device it is.
  //Before we can call the function, we have to define it. 
  function AutoRedirectToProperHomePage()
  {
      global $uagent_obj, $iphoneTierHomePage, $genericMobileDeviceHomePage;

    //We have variables for certain high-usage device variables, like the iPhone Tier.
    //   You might use the device variables to show/hide certain functionality or platform-specific features and ads, etc.
    //   Alternately, you can use the method: DetectTierIphone().
    //   Sometimes, you may wish to include the Tablet Tier devices here, as well. 
      if ($uagent_obj->isTierIphone == $uagent_obj->true) 
      header ('Location: '.$iphoneTierHomePage);

    //We can generally use the Quick Mobile detection method to save a couple of cycles.
      else if ($uagent_obj->DetectMobileQuick() == $uagent_obj->true) 
      header ('Location: '.$genericMobileDeviceHomePage);

    //We'll assume that anything else not caught in the above filters is a desktop-class device. 
    //   (Which can include tablets.)
    }

  //Now, we can call the redirect function.
  AutoRedirectToProperHomePage();
?>

之后是这一行:

    <?php include 'includes/header.php' ?>
4

3 回答 3

1

在其他输出已经发送到浏览器之后,您尝试发送/修改 HTTP 标头 - 什么不起作用。您需要在脚本开头修改标题或在修改标题之前缓冲输出。ob_start()开始输出缓冲,在发送/标题的代码之后,您可以使用ob_end_flush().

http://www.php.net/manual/en/ref.outcontrol.php

于 2013-09-29T18:30:15.510 回答
0

You can try following steps to find out the issues

  1. Check the includes files ("js/mobiledetect.php"), is there space before opening PHP tag or space after closing PHP tag.
  2. Ensure there is no simple echo or directly you are trying to print any html tags ( without calling any function
  3. Check is there any HTML comment section outside of the function of included files
于 2013-09-29T18:33:40.917 回答
0

确保在标头重定向之前没有任何 html 输出。如果你有一些输出,你会得到那个错误。我认为使用元刷新标签更适合重定向。

于 2013-09-29T18:44:27.630 回答