session_start();
换一下以下两句的位置就可以了:
session_register("var");$var = "test";echo "is :".$_SESSION["var"];  //没有东西???为什么??这样写的不对吗
echo "reg?".session_is_registered("var"); //显示1,显然已经注册了这个变

解决方案 »

  1.   

    <?php
    session_start();
    session_register('var');
    if(session_is_registered('var'))echo $var;
    else echo "no anything";
    ?>同意楼上的说法,
    因为session_start()一定要放在程序的开头,
    要保证在它之前不能有任何输出(包括空格)。
      

  2.   

    <?
      session_start();
      $var = "test";   
      session_register('var');  
      if(session_is_registered('var')){
         echo "is:".$_SESSION['var'];
       }  else   {
         echo "no anything!";
       }?> Run result:  is:
      

  3.   

    我已经搞定了,但是,上面兄弟的方面好像有问题:
     session的取值法我觉得应该用:
         $_SESSION['VARNAME']; 还有其他的吗
      

  4.   

    1、从php4.1.0开始php的session的注册方式从老式php4.0.x的session_register()向新式的$_SESSION['var']=val;过渡。此过程到php3.1.0才完成。所以其间的各个版本对session的处理都不竟相同,可能引起诸多麻烦。只要严格按过渡期约定的写法或升级到php4.3.2则一切麻烦都没有了。
    2、从php4.3.1开始,已建议放弃老式的注册方式而改用新式的注册方式。尤其不要将两者混用。
    3、$_SESSION数组的值是在session_start();产生的,所以不会受session_register()的影响。访问一个没有赋值的元素,自然不会有正确结果。所有session变量是在程序结束时才写入session临时文件或库中的。