<?php 
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION["$name"];//输出 1.NAME:cycker2
if (session_is_registered($name))  
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
}
?>

解决方案 »

  1.   

    设置register_globals=on
    就可以了
      

  2.   

    只是听说这个不安全,
    所以较新的版本都默认设为register_globals=off了。
    有什么办法吗?具体原因是什么?我的英文不是很好,谁能帮我解析一下,谢谢
      

  3.   

    to kingerq(多菜鸟) ;
    还是会有warning啊,就是在第一次运行该页面的时候。
      

  4.   

    <?
    $name = "NAME";
    $value = "cycker2";
    $$name = $value;
    session_start();
    echo "<br>1.$name:".$_SESSION[$name];
    if (session_is_registered($name))  
    {
    $_SESSION[$name] = $value ;
    }
    else
    {
    session_register($name);
    $_SESSION[$name]=$value;}
    ?>
    可不可以
      

  5.   

    错了 是这样
    <?
    $name = "NAME";
    $value = "cycker2";
    $$name = $value;
    session_start();
    echo "<br>1.$name:".$_SESSION[$name];
    if (session_is_registered($name))  
    {
    $_SESSION[$name] = $value ;
    }
    else
    {
    //session_register($name);
    $_SESSION[$name]=$value;}
    ?>
      

  6.   

    You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off
    把其中一个设置成off我想你的waring可以关掉的。
      

  7.   

    session_start();要放在程序的第行
      

  8.   

    刚才测试的时候出了点问题,结果应该如下(注释部分)
    session_start()不一定要放在第一行的,只是在它之前不能有输出
    再楼主有没有试过把那两个参数中的其中一个设置成off的结果?
    <?php 
    $name = "NAME";
    $value = "cycker2";
    $$name = $value;
    session_start();
    echo "<br>1.$name:".$_SESSION["$name"];//输出 1.NAME:
    if (session_is_registered("$name"))  
    {
    $_SESSION["$name"] = $value ;
    }
    else
    {
    session_register("$name");
    }
    echo "<br>2.$name:".$_SESSION["$name"];//输出 1.NAME:cycker2?>
      

  9.   

    error_report(0);
    $name = "NAME";
    $value = "cycker2";
    $$name = $value;
    session_start();
    echo "<br>1.$name:".$_SESSION[$name];
    if (session_is_registered($name))  
    {
    $_SESSION[$name] = $value ;
    }
    else
    {
    session_register($name);
    }
      

  10.   

    if (session_is_registered($name))  
    {
    $_SESSION[$name] = $value ;
    }
    else
    {
    session_register($name);
    }
    ===>
    if (isset($_SESSION[$name]))  
    {
    $_SESSION[$name] = $value ;
    }
    else
    {
    $_SESSION[$name] = $name ;
    }不要去改动php.ini的默认设置,在你租用的空间里,你并无修改的权限。
    必要时,需把你的php.ini修改成和你租用的空间里的php.ini一样问题产生的原因是你使用了旧版的session函数——session_register
    在PHP 4.2.3以后请不要再使用session函数库,而将对session的操作由使用session函数改为对$_SESSION数组的操作。其实这要比用session函数要简单多了。