应该是你的这个if(!session_is_registered("username"))条件是成立的,所以执行了$_SESSION["username"]=$username;每次刷新后值当然就不一样了

解决方案 »

  1.   

    应该是因为你的SessoinID一直在便,所以取到的Session值会不一样!
      

  2.   

    if(!session_is_registered("username")) 是判断是否注册,没注册的话,执行,那么第二次的时候,应该是注册了,怎么还改变呢,还有奇怪,我在windows系统下正常,在liux下不正确呢
      

  3.   

    <? 
                      session_start();
     
      if(!session_is_registered("username"))
    {      
                 $username = random(5).date("ymdhis");  //随即生成11位的数字    $_SESSION["username"]=$username;
      }
    echo $_SESSION["username"]; 
     ?>
      

  4.   

    php手册:If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister(). 
    所以  session_is_registered("username")
    应该用 isset($_SESSION['username'])
    替代
      

  5.   

    <? session_start();
     
      $username = random(5).date("ymdhis");  /*你这个随机变量,,,是在if()之前出现的,所以你每刷新一次,就出现一个随机数,这时,再注册进去的session当然就会变了。*/
    if(!session_is_registered("username"))
    {       
       $_SESSION["username"]=$username;
      }
    echo $_SESSION["username"];  ?>