警告:无法修改标题信息 - 已经在***** *****上发送的标题(由*****开始的输出)

时间:2012-09-03 22:16:11

标签: php html

我目前遇到一个问题,一直给我错误的问题标题。这是我的代码,任何人都可以帮我检查有什么问题以及如何解决它?非常感谢你。

以下部分是php文件的底部,包括“Header”:

echo'<table>';
            while ($result = mysql_fetch_array($sql, MYSQL_ASSOC)){
                echo '<tr>';
                echo '<td style="width:142px">';
                echo $result['instrument_id'];
                echo '</td>';
                echo '<td style="width:142px">';
                echo $result['instrument'];
                echo '</td>';
                echo '<td style="width:142px">';
                echo $result['type'];
                echo '<br>';
                echo $result['amount'].'&nbsp;shares';
                echo '</td>';
                echo '<td style="width:142px">';
                echo $result['opening_rate'];
                echo '<br>';
                $fp = fopen ("http://finance.yahoo.com/d/quotes.csv?s='".$result['instrument']."'&f=nsb2b3p2ophg.csv","r");
                    //this uses the fgetcsv function to store the quote info in the array $data
                    $data = fgetcsv ($fp, 1000, ",");
                    echo ($data[3]);//current rate
                echo '</td>';
                echo '<td style="width:142px">';
                echo $result['opening_value'];
                echo '<br>';
                $value = $data[3] * $result['amount'];
                $currentvalue = number_format($value, 2, '.', '');
                echo $currentvalue;//current value
                echo '</td>';
                echo '<td style="width:142px">';
                echo $result['open_time'];
                echo '</td>';
                echo '<td style="width:142px">';
                if($data[3] == 0){
                echo '<input type="submit" name="close'.$result['instrument_id'].'" value="Close" disabled="disabled"/>';}
                else{
                echo '<input type="submit" name="close'.$result['instrument_id'].'" value="Close"/>';}
                echo '</td>';
                echo '</tr>';

                fclose ($fp);

                $name = 'close'.$result['instrument_id'];
                $close = isset($_POST[$name]);
                if($close){

                    $instrumentid = $result['instrument_id'];
                    $_SESSION['instrumentid'] = $instrumentid;


                    $instrument = $result['instrument'];
                    $_SESSION['instrument'] = $instrument;

                    $amount = $result['amount'];
                    $_SESSION['amount'] = $amount;

                    header("Location:order_sell.php");
                }   
            }
            echo'</table>'; 

当我在顶部包含一个文件,即背景文件时,只包含html元素,它会给我一个错误消息,如警告:无法修改标题信息...... 这是包含文件的代码:

<?php 
session_start();

    // checks if $_SESSION['userid'] exists
    $areYouLoggedIn = isset($_SESSION['username']);
?>
<!DOCTYPE html>
<html>
<head>

<style type="text/css">

/* background*/
body { background: url(images/background2.png) center center fixed no-repeat; 
webkit-background-size:cover;
moz-bacground-size:cover;
-o-background-size:cover;
background-size:cover;}

/* top menu layout*/
.Topmenu{
width:1000px;
background: #00AEEF;
border-radius: 3px 3px 3px 3px;
}

/* top menu cell layout*/
.Tabcells{ width:200px; 
text-align:center;
}

/* top menu cell text layout*/

/* top menu cell text layout*/
.Tabtexteffect
{ text-decoration: none;
color:white;
font-family:Arial;
font-size:15px;
}

.Tabtexteffect:hover
{
text-decoration: none;
color:white;
font-family:Arial;
font-size:20px;
}

.Paragraph {text-align:justify; 
text-justify:distributed-all-lines;
text-align-last:justify; 
font-family:arial; 
font-size:12pt;
width:1000px;
}

.Box {
width:950px;
text-align:left;
background: -webkit-linear-gradient(90deg, #F0E68C, #FFFFE0) repeat scroll 0 0 transparent;
background: -moz-linear-gradient(90deg, #F0E68C, #FFFFE0) repeat scroll 0 0 transparent;
border: 1px solid #AAAAAA;
border-radius: 10px 10px 10px 10px;
box-shadow: 0 0 15px #AAAAAA;
}

.Box2 {
    width: 200px;
    text-align: left;
    background: -webkit-linear-gradient(90deg, #FFFA8C, #FFFFE0) repeat scroll 0 0 transparent;
    background: -moz-linear-gradient(90deg, #FFFA8C, #FFFFE0) repeat scroll 0 0 transparent;
    border: 1px solid #AAAAAA;
    border-radius: 10px 10px 10px 10px;
    box-shadow: 0 0 15px #AAAAAA;
}


.Button {
background: -moz-linear-gradient(90deg, #0459B7, #08ADFF) repeat scroll 0 0 transparent;
background: -webkit-linear-gradient(90deg, #0459B7, #08ADFF) repeat scroll 0 0 transparent;
border: 1px solid #093C75;
border-radius: 3px 3px 3px 3px;
box-shadow: 0 1px 0 #FFFFFF;
color: #FFFFFF;
cursor: pointer;
font-family: Arial,sans-serif;
font-size: 12px;
font-weight: bold;
margin-right: -16px;
margin-top: 16px;
padding: 5px 10px;
text-decoration: none;
text-shadow: 0 1px 1px #333333;
text-transform: uppercase;
}




</style>


</head>
<body>
<form action="HomePage.php" method="POST">
<div style="width:1000px; margin:0 auto; min-height:100%;">
<div>
<a href="HomePage.php"><img style="width:25%;" src="images/Mock Apprentice.png" alt="Mock Apprentice"></img></a>
<?php 
if($areYouLoggedIn==false){
    echo'<table cellpadding="0" align="right" style="position: absolute; left: 940px; top: 15px;">';
    echo'<tr>';
    echo'<td width="130" align="center"><font face="Arial" size="3"><a href="Login.php"><input type="button" class="Button" value="Sign In""/></a></font></td>';
    echo'<td width="1" bgcolor=black><BR></td>';
    echo'<td width="100" align="center"><font face="Arial" size="3"><a href="Registration.php"><input type="button" class="Button" value="Sign Up""/></a></font></td>';
    echo'</tr>';
    echo'</table>';
}
if($areYouLoggedIn == true){
    echo'<table cellpadding="0" align="right" style="position: absolute; left: 950px; top: 40px;">';
    echo'<tr>';
    echo'<td width="130" align="center"><font face="Arial" size="4" color="#00AEFF">Welcome';
    echo'&nbsp';
    echo'<font color="#FFD700">';
    echo($_SESSION['username']);
    echo'</font>';
    echo'</font></td>';
    echo'<td width="1" bgcolor=black><BR></td>';
    echo'<td width="100" align="center"><font face="Arial" size="4"><a style="text-decoration: none; color:#00AEFF;" href="Logout.php">Logout</a></font></td>';
    echo'</tr>';
    echo'<table>';
}
?>
<HR color="#00AEEF">
</div>
<div>
<table width="1020" height="30" class="Topmenu">
<tr>
<td width="200" height="30" class="Tabcells"><a href="Intro.php" class="Tabtexteffect">Intro</a></td>
<td width="200" class="Tabcells"><a href="HowToUse.php" class="Tabtexteffect">How to use</a></td>
<td width="200" class="Tabcells"><a href="Elearning.php" class="Tabtexteffect">Education Center</a></td>
<td width="200" class="Tabcells"><a href="ITQuotes.php" class="Tabtexteffect">Trading Platform</a></td>
<td width="196" class="Tabcells"><a href="ContactUs.php" class="Tabtexteffect">Contact Us</a></td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>

非常感谢你!

5 个答案:

答案 0 :(得分:9)

尝试用

替换header("Location:order_sell.php");
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=order_sell.php">';    
exit;

答案 1 :(得分:2)

无论您输出什么 - 仅限HTML或从PHP输出:除非您使用ob_*()函数进行操作,否则在输出任何内容时都会失去发送标题的能力。

这就是为什么它们被称为headers:在HTTP协议中,它们位于每一个有效负载主体之前 - 包括空格,例如<?php标记之前的空行。

解决此问题的典型方法是重新组合您的逻辑首先计算您需要的标题,然后通过echo()创建输出, printf()include()或其他任何内容。

答案 2 :(得分:0)

在PHP header中,必须在从服务器发送任何输出之前调用函数。这包括echo调用以及<?php ?>阻止之前的HTML信息。

答案 3 :(得分:0)

在将任何文本发送到浏览器后,您无法发送header

header("Location:order_sell.php");

在将任何文本/输出/空格发送/回显到浏览器之前需要

答案 4 :(得分:0)

使用标题(“Location:someLocation”)时,请确保没有任何字符输出到浏览器,否则您将收到错误无法修改标题信息。有关详情,请参阅:http://php.net/manual/en/function.header.php