PHP无法使用输入表单修改标头信息

时间:2017-10-23 20:31:16

标签: php

我的代码抛出以下错误:

  

警告:无法修改标头信息 - 已在第7行的/Users/johns/Desktop/Test/index.php中发送的标头(在/Users/johns/Desktop/Test/index.php:5中开始输出)< / p>

实际的代码问题似乎在这里:

<?php
if (isset($_GET["googlesearch"])) {
    header("Location: https://www.test.com/#!q=" . $_GET["googlesearch"] . "&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22_default_products%22");
    exit;
}
?>

我的完整页面代码是:

<!--
     This is the minimum valid AMP HTML document. Just type away
     here and the AMP Playground will render your document on the fly.
-->
 <?php
if (isset($_GET["googlesearch"])) {
    header("Location: https://www.test.com/#!q=" . $_GET["googlesearch"] . "&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22_default_products%22");
    exit;
}
?>
<!doctype html>
<html ⚡>
<head>
  <meta charset="utf-8">
  <link rel="canonical" href="self.html" />
  <meta name="viewport" content="width=device-width,minimum-scale=1">
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <!-- Custom CSS -->
  <style amp-custom>
    <?php include './components/skin/style/css/base.css'; ?>
  </style>
</head>
<body>
  <!-- Search bar -->
  <div class="sidebar">

    <form method="GET"
          class="p2"
          action="<?php echo $_SERVER['PHP_SELF']; ?>"
          target="_top">
        <div class="ampstart-input inline-block relative mb3">
            <input type="search"
                   placeholder="Search..."
                   name="googlesearch">
        </div>
        <input type="submit"
               value="OK"
               class="ampstart-btn caps">
    </form>

  </div>
</body>
</html>

我尝试将ob_start();放在多个地方,但没有运气。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

删除所有这些:

<!--
     This is the minimum valid AMP HTML document. Just type away
     here and the AMP Playground will render your document on the fly.
-->

从此之前:

<?php
if (isset($_GET["googlesearch"])) {
    header("Location: https://www.test.com/#!q=" . $_GET["googlesearch"] . "&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22_default_products%22");
    exit;
}
?>

<?php之前还有一个空格。如果在标题之前发送任何输出,则会给出错误。