进入即送分,使用header()重定向出现如下错误,请进入看看
Warning: Cannot add header information - headers already sent by (output started at E:\Inetpub\wwwroot\PHP\fileUp.php:3) in E:\Inetpub\wwwroot\PHP\fileUp.php on line 65
sourc code 如下
//将上传的文件复制到/home/$upfile_name目录下。
if (!file_exists($DestPath.$SourceName))
{
exec("copy $upfile1 f:\\$upfile1_name");
echo "<hr>文件已复制到f:\\$upfile1_name";
}
else
{
Header("Location:/deal/overwriter.php");
exit;
}
问题点数:100、回复次数:21Top
1 楼realyfly(^_^)回复于 2002-07-10 17:24:06 得分 10
这些代码应该放在一个php文件的最前面
看你上面的提示,你没有那么做
应该这样
<?php
if (!file_exists($DestPath.$SourceName))
{
exec("copy $upfile1 f:\\$upfile1_name");
echo "<hr>文件已复制到f:\\$upfile1_name";
}
else
{
Header("Location:/deal/overwriter.php");
exit;
}
?>
<?
//other code
?>Top
2 楼pan33(日出东海)回复于 2002-07-10 17:30:56 得分 0
我简单试了一下,这个php文件只有
<?
Header("Location:/deal/overwriter.php");
exit;
?>
可以
是不是在Header()执行之前不得有任何输出?Top
3 楼sanguang(光光光)回复于 2002-07-10 17:34:04 得分 5
对头, 对头 realyfly(含泪海)说得对Top
4 楼msccl(懒人)回复于 2002-07-10 17:34:05 得分 5
没错,在header函数之前不能有任何的html或者输出,session也同样如此Top
5 楼faucet(大水龙头)回复于 2002-07-10 19:30:32 得分 5
sure , head 前不能有输出Top
6 楼LeeMaRS(小菜虎,仍需努力)回复于 2002-07-10 20:20:46 得分 10
有也可以:)不过要打开输出缓冲区,ob_start()Top
7 楼tncboy(爆米花)回复于 2002-07-10 22:32:26 得分 5
同上Top
8 楼peakcn(Peak)回复于 2002-07-10 23:56:27 得分 10
header是不能有任何输出的
这里的输出包括:PHP的输出语句,例如PRINT、ECHO等,如果有HTML出是不行的,连PHP的错误提示和警告信息都不行。
如果有上面的这些东西就会出现你遇到的错误提示了。Top
9 楼Arbow(◎_◎)回复于 2002-07-11 00:08:22 得分 10
还有注意在开始不要有空格或者换行,否则这些也当成html代码输出,header就失效了Top
10 楼laosan(老三)回复于 2002-07-11 03:51:45 得分 5
Header()执行之前不得有任何输出.
有也可以:)不过要打开输出缓冲区,ob_start()Top
11 楼pan33(日出东海)回复于 2002-07-11 09:24:40 得分 0
ob_start()是哪类函数,在《php4中文手册》的哪个部位Top
12 楼icewolf_li(冰狼)回复于 2002-07-11 09:31:09 得分 10
ob_start(); //打开输出缓冲区
.......
做任何你想做的事情,只要不是用exit :)
......
$buffer = ob_get_contents();
ob_end_clean();
echo $buffer;Top
13 楼pan33(日出东海)回复于 2002-07-11 09:46:57 得分 0
感谢大家,受益非浅!
稍等就送分,有高见继续发表。Top
14 楼pan33(日出东海)回复于 2002-07-11 10:11:28 得分 0
ob_start()属于哪类函数,怎么在php4的函数库中找不到Top
15 楼sakura169(〖一诺轻天下〗)回复于 2002-07-11 10:25:59 得分 10
(PHP 4 >= 4.0.0)
ob_start -- Turn on output buffering
Description
void ob_start ( [string output_callback])
<?
function callback($buffer) {
// replace all the apples with oranges
return (ereg_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.
</body>
</html>
<?ob_end_flush();?>
Top
16 楼leeeel(我笑你多情)回复于 2002-07-11 11:32:42 得分 5
Header("Location:/deal/overwriter.php");
改成
@Header("Location:/deal/overwriter.php");
强行通过!Top
17 楼GREEN_PINE(明空)回复于 2002-07-11 11:47:42 得分 1
进入即送分Top
18 楼lanbor(web)回复于 2002-07-11 12:19:58 得分 1
upTop
19 楼LeeMaRS(小菜虎,仍需努力)回复于 2002-07-11 12:24:18 得分 5
ob_start()是新函数,在PHP4中文手册中查不到.
建议大家手上要备有一本英文的PHP手册,又新又全面.Top
20 楼pan33(日出东海)回复于 2002-07-11 14:48:31 得分 0
问题已解决,但现在结贴觉得有点可惜,我保留2天,一定给分!Top
21 楼watery(青青莲心)回复于 2002-07-11 15:39:14 得分 3
header()要放在最前面,也就是说header()前不能有输出,比如echo之类。/Top




