可是我会出现这样的错误Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/rowan/working/expenseAccount/page/page.php:36) in /home/rowan/working/expenseAccount/claim/Class.claim.php on line 42Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/rowan/working/expenseAccount/page/page.php:36) in /home/rowan/working/expenseAccount/claim/Class.claim.php on line 42Warning: Cannot modify header information - headers already sent by (output started at /home/rowan/working/expenseAccount/page/page.php:36) in /home/rowan/working/expenseAccount/claim/Class.claim.php on line 50

解决方案 »

  1.   

    这是我类里的程序段
    function claim_session(){
    session_start();
    session_register("claim_data[]");
    $claim_data=array(username=>$_REQUEST['username'],
     section =>$_REQUEST['section'],
     job     =>$_REQUEST['job'],
    dates   =>$_REQUEST['date'],
    reason  =>$_REQUEST['reason'],
    address =>$_REQUEST['address']);
    header("location:index.php?page_action=expenses&other_action=expenses_list");
        }
      

  2.   

    是否在php.ini里要做设置 ?
      

  3.   

    你在调用这个函数以前,是否输出了什么数据了?在session_start();前是不能用echo输出任何数据的。
      

  4.   

    哦,我调用了IT.php里的类,是有用echo.
    对了,在类里的session是写法跟普通的不一样.
    普通写法:
    session_start();
    session_register('c');
    $c='kgd'; 
    类里的写法:
    class c{
    function c() {
    session_start();
    session_register('c');
    $_SESSION['c']='kgd';这里不能像正常的用$c='kgd'语句则无法存储成session变量.
    }
    }
    解释不是很清楚,如果有谁对这更清楚的请帮忙详细说明一下.
      

  5.   

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started 这个提示是说在 session_start() 之前有输出。所以报错。新版php这样注册session变量 $_SESSION['变量名'] = 变量值;
    这样输出session变量 echo $_SESSION['变量名'];
      

  6.   

    补充上面一下,新版的php是这样使用没错,但是还可以用旧版的那样.
    用session_register注册之后可以直接附值,需要用到$_SESSION['变量名'],而不能直接附值的地方只在于函数和类.
    以上是我调试后的结果,各位可以试试.
      

  7.   

    1、session_start() 放在类外面
    2、如有多个嵌入文件最好先session_start() 再include,或把session_start() 放在第一个嵌入文件中
    3、用session_register注册的变量应该是全局变量,否则会访问不到
    4、不要混用session_register和$_SESSION[var]=。php4.3.0已建议放弃session_register了
    5、旧版(php ver < 4.1.0)没有$_SESSION,你的代码并不能用
      

  8.   

    1、session_start() 放在类外面
    2、如有多个嵌入文件最好先session_start() 再include,或把session_start() 放在第一个嵌入文件中
    3、用session_register注册的变量应该是全局变量,否则会访问不到
    4、不要混用session_register和$_SESSION[var]=。php4.3.0已建议放弃session_register了
    5、旧版(php ver < 4.1.0)没有$_SESSION,你的代码并不能用