Session的输出应该放在任何HTTP输出之前

解决方案 »

  1.   

    错误不是已经很明显了吗?你好像重复发送/输出了header:"headers already sent "仔细看看代码,看看是不是?
      

  2.   

    我在test.php中是这样开始的:
    <?
    include("session_mysql.php");
    session_start();
    哪里有什么输出?
      

  3.   

    我在test.php中是这样开始的:
    <?
    include("session_mysql.php");
    session_start();
    哪里有什么输出?
      

  4.   

    数据库中已经有值写入了,
    不过sesskey=0
      

  5.   

    <?php
    session_start();
    include("session_mysql.php");?>换成这样试试。
      

  6.   

    换后:
    Fatal error: session_start(): Failed to initialize storage module. in F:\PHP\test\session_test3.php on line 2
      

  7.   

    去掉session_mysql.php的第86行(?>)后面的空格和空行即可
      

  8.   

    去掉session_mysql.php的第86行(?>)后面的空格和空行即可
      

  9.   

    多谢 xuzuning(唠叨) 
    确实没错了。
    不过又有了个问题了:
    在数据库中sesskey都是等于0,value是这样的形式:count|i:7;bbs|s:6:"Flying";为什么?
      

  10.   

    xuzuning(唠叨) 向你学习,为什么会是这样?去掉后面的 ?>和空个空行就可以了。
      

  11.   

    在数据库中sesskey都是等于0,value是这样的形式:count|i:7;bbs|s:6:"Flying";为什么?还没解决啊
      

  12.   

    我用的函数,没有问题。改自php手册。
    CREATE TABLE `sessions` (
      `sessionid` varchar(32) NOT NULL default '',
      `lastupdated` datetime NOT NULL default '0000-00-00 00:00:00',
      `datavalue` text NOT NULL,
      PRIMARY KEY  (`sessionid`),
      KEY `lastupdated` (`lastupdated`)
    ) TYPE=MyISAM;
    <?phpfunction mysess_open($aSavaPath, $aSessionName)
    {
          global $aTime;
    $aTime=600;
          mysess_gc( $aTime );
          return True;
    }function mysess_close()
    {
          return True;
    }function mysess_read( $aKey )
    {
    $query = "SELECT datavalue FROM sessions WHERE sessionid='$aKey'";
    $res = mysql_query($query);
    if(mysql_num_rows($res) == 1)
          {
                $r = mysql_fetch_array($res);
               return $r['datavalue'];
          } else{
                $query = "INSERT INTO sessions (sessionid, lastupdated, datavalue) VALUES ('$aKey', NOW(), '')";
                mysql_query($query);
                return "";
          }
    }function mysess_write( $aKey, $aVal )
    {
          $aVal = addslashes( $aVal );
          $query = "UPDATE sessions SET datavalue = '$aVal', lastupdated = NOW() WHERE sessionid = '$aKey'";
          mysql_query($query);
          return True;
    }function mysess_destroy( $aKey )
    {
          $query = "DELETE FROM sessions WHERE sessionid = '$aKey'";
          mysql_query($query);
          return True;
    }function mysess_gc( $aMaxLifeTime )
    {
          $query = "DELETE FROM sessions WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(lastupdated) > $aMaxLifeTime";
          mysql_query($query);
          return True;
    }session_set_save_handler("mysess_open", "mysess_close", "mysess_read", "mysess_write", "mysess_destroy", "mysess_gc");
    ?>
      

  13.   

    to:ustb(偶然) 
    你用的这个函数跟我上面写到的实际没什么差别。问题是我的session_id怎么会是0呢?怎么解决?