我得到的结果是
Status: . Counter: .

解决方案 »

  1.   

    代码没有问题~~我得到的结果是:Status: I'm alive. Counter: 1. 建议查看PHP的安装设置
      

  2.   

    php版本问题
    php 4.1.2 得
    Status: . Counter: .
    php 4.3.1 得
    Status: I'm awake. Counter: 1.
      

  3.   

    我把register_globals 设置成 on 就可以了,但是这样会有安全的问题啊
      

  4.   

    Status: . Counter: . 
    Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0我的错误4.1.0  register_globals= off
      

  5.   

    我的4.3.2 RC4也得到
    Status: . Counter: . ---------------------------
    php版本问题
    php 4.1.2 得
    Status: . Counter: .
    php 4.3.1 得
    Status: I'm awake. Counter: 1.
      

  6.   

    我检测了一下,对象没有注册进session,普通变量可以注册。
    -----------
    <?
    /*******************************************
    *   Product     :   Baby Web               *
    *   Version     :   1.0.001                *
    *   Copyright   :   Baby Studio            *
    *   Author      :   Pan Yingjie            *
    *   Email       :   [email protected]     *
    *******************************************/
    ?>
    <?
    header("Expires: Mon, 11 Dec 1978 00:00:00 GMT");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Pragma: no-cache");
    ?>
    <?php
    // Make sure to include class definition BEFORE session is started
    class sleepy
    {
    var $status;
    var $counter; // Constructor
    function sleepy()
    {
    $this->counter = 1;
    $this->status = "I'm alive";
    } // Wakeup is called each time this object is deserialized
    function __wakeup()
    {
    $this->counter++;
    $this->status = "I'm awake";
    } // Sleep is called each time this object is serialized
    function __sleep()
    {
    $this->status = "I'm asleep";
    // If this array is not returned, the object is not serialized
    return array("status", "counter");
    }
    } // end class sleepy // Initiate the session
    session_start(); if(!isset($_SESSION["t"])){
    $t=1;
    session_register("t");
    }
    if (!isset($_SESSION["sleepy_obj"]))
    {
    $sleepy_obj = new sleepy;
    session_register("sleepy_obj");
    echo('sleepy_obj now session_register'.'<br>');
    }
    ?>
    <html>
    <head>
    <title>Session and Objects</title>
    </head>
    <body>
    <?
    echo(strval($_SESSION["t"]++).'<br>');
    echo("Status: . Counter: .".$_SESSION["sleepy_obj"]->status.$_SESSION["sleepy_obj"]->counter);
    ?>
    </body>
    </html>
      

  7.   

    哈,发现问题了,看来我要很不好意思的收满分了(不过搂主不用担心我不好意思的),言归正传-------------------
    session_register的使命是在session中注册一个变量,或者更直接的说是一个变量名,在直接就是全局变量——数组$_SESSION中加一个索引而已。
    应该这样修改:
    $sleepy_obj = new sleepy;   //这一句创建了对象
    session_register("sleepy_obj");   //这一句注册了一个名为sleepy_obj的session变量。
    $_SESSION["sleepy_obj"]=$sleepy_obj;  //附加这一句,才能把刚刚创建的$sleepy_obj对象放进session变量$_SESSION["sleepy_obj"]中。----------------
    over
      

  8.   

    果真能搞定呢,babystudio(ABabyStudio) ( ) 信誉:103 让我先思考一下呵呵呵。。