这个是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标记前面例外写一段代码包含这两句话吗

解决方案 »

  1.   

    前面不能有任何输出是什么意思?echo之类的吗
      

  2.   

    <?php 这前面的HTML代码就算是输出了。
    放在前面的最终目的还是防止提前输出。
      

  3.   


    <?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';
    ?>
      

  4.   

    这个其实 session的前面有文件标识也会失效 比如utf8的签名