1

我正在开发一个 PHP 项目,我试图使用标头(位置:something.php)从一个页面重定向到另一个页面。它在本地机器上工作正常,但是当上传到服务器时,出现以下错误:

Warning: Cannot modify header information - headers already sent by (output started at /homepages/4/d404449574/htdocs/yellowandred_in/newTest/editHome.php:15) in /homepages/4/d404449574/htdocs/yellowandred_in/newTest/editHome.php on line 43

我已经尝试过include, include_once,但它给出了其他错误,例如requirerequire_once

Cannot redeclare logged_in() (previously declared in C:\wamp\www\ynrNewVersion-1\editHome.php:3) in C:\wamp\www\ynrNewVersion-1\adminIndex.php on line 5

我的代码

<?php
session_start();
function logged_in() {
  return isset($_SESSION['username']);
}

function confirm_logged_in() {
  if (!logged_in()) {
    include "error404.php";
    exit;
  }
}

confirm_logged_in();
require_once("connection.php");

$query="select * from home";
$homeInfo = mysql_query($query, $connection);
$result = mysql_fetch_array($homeInfo);

$content = $result['content'];
$rssFeeds = $result['rssFeeds'];
$message = "";
if(isset($_POST['submit'])){
  $content = $_POST['content'];
  $rssFeeds = $_POST['rssFeeds'];
  if($content == "" || $rssFeeds == ""){
    $message = "Please enter into all the fields";
  } else {
    $query = "UPDATE home SET content='$content',rssFeeds='$rssFeeds' WHERE id=1 LIMIT 1";
    $result = mysql_query($query,$connection);
    if(!$result){
      echo "error".mysql_error();
    }
    if ($result == 1) {
      header("Location:adminIndex.php");
    } else {
      $message = "Error Occurred";
    }
  }
}
if(isset($_POST['cancel'])){
  header("Location:adminIndex.php");
}
?>
4

3 回答 3

0

问题是您在标头功能之前有回声。

if(!$result){
  echo "error".mysql_error();
}

在你的两个标题(“位置:adminIndex.php”)之前,你不能回显任何东西。

于 2012-06-05T05:24:08.927 回答
0

在 PHP 页面顶部使用 ob_start();

于 2012-06-05T05:09:34.357 回答
0

您需要在标头函数之后放置一个 exit() 或 die() - 否则脚本的其余部分将继续执行。

重定向可以采用相对或绝对 URL。问题在于冒号前的空格。试试这样:

header("Location: adminIndex.php");
die();
于 2012-06-05T05:10:19.460 回答