在开始就加一个
$f_admin = 1;
试试

解决方案 »

  1.   

    Notice可以不用管还有就是,之前定义的,只在那个文件/函数中有效如果,现在你包含了之前的文件,才能取得当时的值
      

  2.   

    声明和取值前都globle $f_admin一下。
    要么你就包含一下$f_admin所在的文件。注意变量的作用域。
      

  3.   

    这个notice是对你的代码规范给你的建议,不是必要的错误。php中定义或不定义,都可以直接使用变量的。
      

  4.   

    可是我需要用$f_admin的值呀~~
    它没传下来,用不了~ 上下两个<?php……?>都是在一个文件里,应该不存在这样的问题呀
      

  5.   

    就算在下面那个<?php……?>加上了
    if ( $user_cookie != "" ) {
    $cookie = 1;
    if ( $user_cookie == $fadmin ) {
    $f_admin = 1;
    }
    if ( $user_cookie == $fadmin2 ) {
    $f_admin = 1;
    }
    if ( $user_cookie == $fadmin3 ) {
    $f_admin = 1;
    }
    } else {
    $cookie = 0;
    $f_admin = 0;
    }
    if ( $f_admin == 1) {
    ……
    }
    都不行!!!!!
      

  6.   

    if ( $user_cookie != "" ) {
    $cookie = 1;
    if ( $$user_cookie == $fadmin ) {
    $f_admin = 1;
    }
    if ( $$user_cookie == $fadmin2 ) {
    $f_admin = 1;
    }
    if ( $$user_cookie == $fadmin3 ) {
    $f_admin = 1;
    }

    居然要这么写才可以!!!!!!!
    想知道为什么要两个$$???
      

  7.   

    用两个$$,代表的是变量的变量。
    看这个例子:$a = "hello";
    $$a = "world";
    echo $a."\n";
    echo $hello;输出结果为:hello world
    可你的程序为什么出问题,我还是没看明白。目前理解为:
    先检测cookies是否存在,不存在再去检测seesion。即使在一个文件里面变量也有作用域的问题。你那个变量是不是定义在函数的内部了?
      

  8.   

    $f_admin = 0;
    if ( $user_cookie != "" ) { //这个分支中并不能保证$f_admin被赋值
    $cookie = 1;
    if ( $user_cookie == $fadmin ) {
    $f_admin = 1;
    }
    if ( $user_cookie == $fadmin2 ) {
    $f_admin = 1;
    }
    if ( $user_cookie == $fadmin3 ) {
    $f_admin = 1;
    }
    } else {
    $cookie = 0;
    $f_admin = 0;
    }