header()和session_start()前面不能有任何输出是什么意思

i_hugo 2012-04-09 03:49:25
这个是common.php里的一个函数:
function checkUservalidate(){
session_start();
if(empty($_SESSION['loginuser'])){
header("Location:login.php?errno=1");
}
}[/code]


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script type="text/javascript">
<!--
function confirmDel(val){
return window.confirm("是否要删除id="+val+"的用户");
}
//--->
</script>
</head>
<?php
require_once 'common.php';
checkUservalidate();
require_once 'empservice.class.php';
require_once 'fenyepage.php';


为什么require_once 'common.php';
checkUservalidate();不是已经放在php代码的最前头了吗 ,前面不是没有任何输出了?为什么出错?
一定在html标记前面例外写一段代码包含这两句话吗
...全文
321 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainysia 2012-05-03
  • 打赏
  • 举报
回复
这个其实 session的前面有文件标识也会失效 比如utf8的签名
jumpheightway 2012-04-10
  • 打赏
  • 举报
回复
这是个范围函数,而且是个很自私的函数
码无边 2012-04-10
  • 打赏
  • 举报
回复
缓存溢出
huidengliu 2012-04-09
  • 打赏
  • 举报
回复
去了解一下http协议吧
etpass_com 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
这个是common.php里的一个函数:
function checkUservalidate(){
session_start();
if(empty($_SESSION['loginuser'])){
header("Location:login.php?errno=1");
}
}[/code]
PHP code


<html>
<he……
[/Quote]

<?php
//将session放在第一位
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script type="text/javascript">
<!--
function confirmDel(val){
return window.confirm("是否要删除id="+val+"的用户");
}
//--->
</script>
</head>
<?php
require_once 'common.php';
checkUservalidate();
require_once 'empservice.class.php';
require_once 'fenyepage.php';
?>
改一下昵称 2012-04-09
  • 打赏
  • 举报
回复
<?php 这前面的HTML代码就算是输出了。
放在前面的最终目的还是防止提前输出。
i_hugo 2012-04-09
  • 打赏
  • 举报
回复
前面不能有任何输出是什么意思?echo之类的吗

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧