Php 下载标题显示“我的服务器”上的错误
这是我的第二页,我的第一页是下载按钮Php 下载标题显示“我的服务器”上的错误,php,header,Php,Header,这是我的第二页,我的第一页是下载按钮 <?php session_start(); //user not logged in, no direct access if (!isset($_SESSION['user'])) header("location:../admin/"); include "../config.php"; if(isset($_POST['downld'])) { header( "Content-Type: application/vnd.ms-excel"
<?php
session_start();
//user not logged in, no direct access
if (!isset($_SESSION['user'])) header("location:../admin/");
include "../config.php";
if(isset($_POST['downld'])) {
header( "Content-Type: application/vnd.ms-excel" );
header( "Content-disposition: attachment; filename=emc_promo_".date("m-d-Y").".xls" );
$q="select * from emc_leadgen2 order by emc_time_date desc ";
$r=mysql_query($q);
$count=mysql_num_rows($r);
if($count>0) {?>
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
</head>
<body>
<table cellpadding="3" cellspacing="0" border="1" >
<tr><td colspan="8" align="center"><b>Lead Gen Form for EMC on <?=date("m-d-Y")?></b></td></tr>
<tr>
<td style="padding:5px;"><b>FIRST NAME</b></td>
<td style="padding:5px;"><b>LAST NAME</b></td>
<td style="padding:5px;"><b>NAME OF ORG.</b></td>
<td style="padding:5px;"><b>JOB TITLE</b></td>
<td style="padding:5px;"><b>MAIL</b></td>
<td style="padding:5px;"><b>PHONE</b></td>
<td style="padding:5px;"><b>ADDRESS</b></td>
<td style="padding:5px;"><b>STORAGE</b></td>
<td style="padding:5px;"><b>TIME & DATE</b></td>
</tr>
<?php while($row=mysql_fetch_array($r)) {?>
<tr>
<td style="padding:5px;"><?=$row['emc_fname']?></td>
<td style="padding:5px;"><?=$row['emc_lname']?></td>
<td style="padding:5px;"><?=$row['emc_organization']?></td>
<td style="padding:5px;"><?=$row['emc_job_title']?></td>
<td style="padding:5px;"><?=$row['emc_email']?></td>
<td style="padding:5px;"><?=$row['emc_phone']?></td>
<td style="padding:5px;"><?=$row['emc_address']?></td>
<td style="padding:5px;"><?=$row['emc_storage']?></td>
<td style="padding:5px;"><?=$row['emc_time_date']?></td>
</tr>
<?php
}
}
}
?>
</table>
</body>
</html>
当我点击下载按钮时,它显示了这个错误
警告:无法修改标题信息-标题已由发送
(输出开始于
/home/content/59/8131259/html/leadyourtran/offer1/config.php:6)中
/主页/content/59/8131259/html/leadyourtran/offer1/admin/downld.php
第8行
及
警告:无法修改标题信息-标题已由发送
(输出开始于
/home/content/59/8131259/html/leadyourtran/offer1/config.php:6)中
/主页/content/59/8131259/html/leadyourtran/offer1/admin/downld.php
第9行
我的第8行和第9行都只是头一行。header()
,就像session\u start()
必须在任何输出或html代码之前调用。如果在header()
之前包含文件中的输出(或警告错误),则会导致这些错误
检查config.php的第6行(在error mesage中指定)。header()
,如session\u start()
必须在任何输出或html代码之前调用。如果在header()
之前包含文件中的输出(或警告错误),则会导致这些错误
检查config.php,第6行(在error mesage中指定)。尝试添加
ob_start();
在php文件的顶部
如果默认情况下,输出缓冲
为关闭
,并且您不幸将一个字节的数据发送回客户端,则您的HTTP
头已经发送。这有效地防止了会话\u start()
将cookie头传递回客户端。通过调用ob_start()
可以启用缓冲,从而延迟发送http头
借用另一个答案
在“正常情况下”,我不认为必须在会话开始之前调用ob\u start
——也不认为必须在会话开始之前调用ob\u start
不过,引用以下的话:
会话_start()将注册内部
用于URL重写的输出处理程序
已启用trans sid。如果用户使用
带有ob_start()的ob_gzhandler或类似程序,
输出处理程序的顺序为
对于正确的输出很重要。对于
例如,用户必须注册
在会话开始之前执行ob_gzhandler
但这是一种特殊情况:这里的问题是,输出处理程序的顺序很重要:如果您希望一个处理程序修改另一个处理程序所做的事情,那么它们必须以“正确”的顺序执行
通常,如果您不使用这种处理程序(例如Apache,在压缩输出方面做得很好),唯一重要的是在调用session\u start
(因为,根据您的配置,session\u start
发送cookie,这些cookie作为HTTP头传递)
只要有任何数据需要发送,就会发送头文件,也就是说,只要有任何输出,即使是
标记之外的一个空格:
注意:如果您使用的是基于cookie的
会话,你必须打电话
会话_start(),然后执行任何操作
输出到浏览器
ob_start
表示PHP必须缓冲数据:
此函数将打开输出
缓冲打开。当输出缓冲时
处于活动状态时,未从发送任何输出
改为使用脚本(标题除外)
输出存储在一个内部存储器中
缓冲区
这样,在您自己实际说“发送数据”之前,不会发送输出。这意味着不会立即发送标题——这意味着以后可以调用session\u start
,即使没有使用ob\u start
,也应该有输出
希望这能让事情变得更清楚…尝试添加
ob_start();
在php文件的顶部
如果默认情况下,输出缓冲
为关闭
,并且您不幸将一个字节的数据发送回客户端,则您的HTTP
头已经发送。这有效地阻止了会话启动()
将cookie头传递回客户端。通过调用ob\u start()
可以启用缓冲,从而延迟发送http头
借用另一个答案
在“正常情况下”,我不认为必须在会话开始之前调用ob\u start
——也不认为必须在会话开始之前调用ob\u start
不过,引用以下的话:
会话_start()将注册内部
用于URL重写的输出处理程序
已启用trans sid。如果用户使用
带有ob_start()的ob_gzhandler或类似程序,
输出处理程序的顺序为
对于正确的输出非常重要。对于
例如,用户必须注册
在会话开始之前执行ob_gzhandler
但这是一种特殊情况:这里的问题是,输出处理程序的顺序很重要:如果您希望一个处理程序修改另一个处理程序所做的事情,那么它们必须以“正确”的顺序执行
通常,如果您不使用这种处理程序(例如Apache,在压缩输出方面做得很好),唯一重要的是在调用session\u start
(因为,根据您的配置,session\u start
发送cookie,这些cookie作为HTTP头传递)
只要有任何数据需要发送,就会发送头文件,也就是说,只要有任何输出,即使是
标记之外的一个空格:
注意:如果您使用的是基于cookie的
会话,你必须打电话
会话_start(),然后执行任何操作
输出到浏览器
ob_start
表示PHP必须缓冲数据:
此函数将打开输出
缓冲打开。当输出缓冲时
处于活动状态时,未从发送任何输出
改为使用脚本(标题除外)
输出存储在一个内部存储器中
日分