是这样的,现在PHP严格了一点,向一个从未付过的变量
取值/比较是会出现警告的,用empty()之类的检查则无所谓

解决方案 »

  1.   

    PHP.INI中的register_global或用$HTTP_SESSION_VARS看看
      

  2.   

    $HTTP_SESSION_VARS["user"]是好用的。多谢啊!呵呵。
      

  3.   

    在PHP 4.2中,新安装的PHP中的register_globals选项默认为关闭,因此EGPCS值(EGPCS是Environment、Get、Post、Cookies、Server的缩写 -- 这是PHP中外部变量来源的全部范围)不会被作为全局变量来创建。当然,这个选项还可以通过手工来开启,但是PHP的开发者推荐你将其关闭。要贯彻他们的意图,你需要使用其它的方法来获取这些值。
        从PHP 4.1开始,EGPCS值就可以从一组指定的数组中获得:
        $_ENV -- 包含系统环境变量 
        $_GET -- 包含查询字符串中的变量,以及提交方法为GET的表单中的变量
        $_POST -- 包含提交方式为POST的表单中的变量
        $_COOKIE -- 包含所有cookie变量
        $_SERVER -- 包含服务器变量,例如HTTP_USER_AGENT
        $_REQUEST -- 包含$_GET、$_POST和$_COOKIE的全部内容
        $_SESSION -- 包含所有已注册的session变量
        在PHP 4.1之前,当开发者关闭register_globals选项(这也被考虑为提高PHP性能的一种方法)后,必须使用诸如$HTTP_GET_VARS这样的令人讨厌的名字来获取这些变量。这些新的变量名不仅仅短,而且它们还有其他优点。在PHP 4.1中,添加了一组特殊数据以访问外部数据。这些数组可以在任何范围内调用,这使得外部数据的访问更方便。在PHP 4.2中,register_globals被默认关闭以鼓励使用这些数组以避免无经验的开发者编写出不安全的PHP代码。